SQLite e Prisma no Node.js: Simplificando a Interação com Bancos de Dados

Node.js 1 de Nov de 2023

*Texto de Paulo Clemente
Desenvolvedor e redator de mídias sociais na Rocketseat

No contexto do Node.js, uma das combinações mais poderosas para simplificar a interação com bancos de dados é a união do SQLite e do Prisma. Esta dupla dinâmica oferece a nós, devs, a capacidade de criar aplicativos robustos e eficazes, com facilidade de uso e desempenho impressionante.

SQLite: Armazenamento Local Eficiente

O SQLite é um sistema de gerenciamento de banco de dados relacional que se destaca pela sua simplicidade e leveza. Ele é uma excelente opção quando se trata de armazenamento local de dados, pois não requer a configuração de um servidor de banco de dados separado. Em vez disso, o SQLite armazena os dados em um único arquivo, o que é particularmente adequado para aplicativos mobile, desktop e sistemas embarcados.

NLW unite | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

Operações Comuns com SQLite

Criação de Tabelas: O SQLite permite a definição de tabelas com campos e tipos de dados específicos.

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('meu_banco_de_dados.db');

db.serialize(() => {
  db.run('CREATE TABLE usuarios (id INT, nome TEXT)');
});

Inserção de Dados: Podemos adicionar dados a essas tabelas, preenchendo as linhas com informações relevantes.

db.serialize(() => {
  const stmt = db.prepare('INSERT INTO usuarios VALUES (?, ?)');
  stmt.run(1, 'João');
  stmt.run(2, 'Maria');
  stmt.finalize();
});

Consultas (SELECT): Realizar consultas para recuperar dados com base em critérios específicos, utilizando a linguagem SQL.

db.serialize(() => {
  db.each('SELECT * FROM usuarios', (err, row) => {
    if (err) {
      console.error(err.message);
    }
    console.log(row.id, row.nome);
  });
});

Atualização de Dados (UPDATE): Modificar os registros existentes no banco de dados.

db.serialize(() => {
  db.run("UPDATE usuarios SET nome = 'Pedro Silva' WHERE id = 1");
});

Exclusão de Dados (DELETE): Remover dados indesejados das tabelas.

db.serialize(() => {
  db.run('DELETE FROM usuarios WHERE id = 1');
});

No entanto, quando se trata de criar aplicativos mais complexos, o gerenciamento manual de consultas e operações pode se tornar desafiador. É aqui que o Prisma entra em ação para simplificar significativamente o processo.

Prisma: Simplificando a Interação com Bancos de Dados

O Prisma é uma ferramenta de desenvolvimento que oferece um ORM (Object-Relational Mapping) de alto desempenho. Sua principal função é mapear os modelos de dados da sua aplicação para o banco de dados subjacente, eliminando a necessidade de escrever consultas SQL manualmente. No contexto do Node.js, o Prisma é uma escolha popular para o desenvolvimento de aplicativos web e serviços em nuvem.

🔥 Temos uma Masterclass gratuita que aborda ambas tecnologias de uma forma clara com muita prática:

Acesse o link👇

Operações com Prisma

Definição de Modelos de Dados: No Prisma, você define os modelos de dados da sua aplicação usando JavaScript/TypeScript. Por exemplo, para criar um modelo de usuário, você pode definir campos como title, content e outros atributos relacionados.

app.post(`/post`, async (req, res) => {
  const { title, content, authorEmail } = req.body
  const result = await prisma.post.create({
    data: {
      title,
      content,
      published: false,
      author: { connect: { email: authorEmail } },
    },
  })
  res.json(result)
})

Geração de Migrações: O Prisma permite criar e gerenciar migrações de banco de dados. Isso facilita a evolução do esquema do banco de dados à medida que a aplicação cresce e os requisitos mudam.

Consultas Complexas: Com o Prisma, você pode realizar consultas complexas de forma fácil e legível, aproveitando a linguagem de consulta do Prisma. Isso elimina a necessidade de escrever SQL manualmente.

Relações Automáticas: O Prisma reconhece as relações entre modelos de dados e facilita a navegação entre eles, simplificando o acesso a dados relacionados.

Transações Seguras: O Prisma oferece suporte a transações, permitindo a execução de várias operações de banco de dados como uma única unidade de trabalho, garantindo que todas as operações sejam bem-sucedidas ou nenhuma seja realizada.

Segurança Integrada: O Prisma ajuda a prevenir injeções SQL, tornando as consultas seguras por padrão.

Node.js na prática - Evento online | Rocketseat
Descubra como usar todo o potencial de Node.js criando um projeto incrível em uma aula 100% prática.

A combinação do SQLite e do Prisma no desenvolvimento Node.js oferece um ambiente poderoso para criar aplicativos eficazes. O SQLite fornece um sistema de armazenamento local eficiente, enquanto o Prisma simplifica significativamente a interação com bancos de dados relacionais.

Com o Prisma, nós, programadores e programadoras podemos definir modelos de dados de forma clara, realizar consultas complexas de maneira intuitiva e gerenciar o esquema do banco de dados de maneira eficaz. Essa abordagem simplifica o desenvolvimento de aplicativos, economiza tempo e esforço, e permite que foquemos mais na lógica do aplicativo em si, em vez de se preocuparmos com detalhes de banco de dados.

Assista a Masterclass gratuita que preparamos até o final para acelerar seu aprendizado nessa tecnologia, receba um certificado de participação e um presente especial 🎁 Clique aqui.

Marcadores