Como configurar um banco de dados SQLite no Node.js?

SQLite é uma excelente escolha para aplicações leves e portáteis. Descubra como configurar e usar o SQLite no Node.js para armazenar dados localmente.

Como configurar um banco de dados SQLite no Node.js?

O SQLite é um banco de dados leve e altamente eficiente que não exige um servidor de banco de dados separado. Ele armazena dados em um único arquivo de disco, o que o torna ideal para aplicações móveis, aplicações de desktop e projetos de pequeno e médio porte. Neste tutorial, vamos aprender a configurar e usar o SQLite no Node.js para armazenar dados localmente.

1. Instalando o pacote sqlite3

O primeiro passo é instalar o sqlite3, um dos pacotes mais populares para trabalhar com SQLite no Node.js. Instale-o com o seguinte comando:

npm install sqlite3

2. Configurando o Banco de Dados SQLite

Com o SQLite instalado, você pode criar uma conexão com o banco de dados e começar a executar consultas SQL. Crie um arquivo chamado database.js e adicione o seguinte código:

const sqlite3 = require('sqlite3').verbose();

// Conectando ao banco de dados SQLite
const db = new sqlite3.Database('./meubanco.db', (err) => {
    if (err) {
        console.error('Erro ao conectar ao banco de dados:', err.message);
    } else {
        console.log('Conectado ao banco de dados SQLite!');
    }
});

module.exports = db;

O arquivo meubanco.db será criado na pasta do seu projeto, onde os dados do banco de dados serão armazenados.

3. Criando Tabelas no SQLite

Agora, você pode criar as tabelas no banco de dados. Vamos criar uma tabela usuarios para armazenar informações sobre os usuários:

const db = require('./database');

const createTable = () => {
    const query = `CREATE TABLE IF NOT EXISTS usuarios (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        nome TEXT NOT NULL,
        email TEXT UNIQUE NOT NULL,
        idade INTEGER
    );`;
    db.run(query, (err) => {
        if (err) {
            console.error('Erro ao criar tabela:', err.message);
        } else {
            console.log('Tabela criada com sucesso!');
        }
    });
};

createTable();

Este código cria uma tabela usuarios no banco de dados com as colunas id, nome, email e idade.

4. Inserindo Dados no SQLite

Depois de criar a tabela, você pode inserir dados nela. Aqui está um exemplo de como adicionar um novo usuário na tabela usuarios:

const db = require('./database');

const insertUser = (nome, email, idade) => {
    const query = `INSERT INTO usuarios (nome, email, idade) VALUES (?, ?, ?)`;
    db.run(query, [nome, email, idade], (err) => {
        if (err) {
            console.error('Erro ao inserir usuário:', err.message);
        } else {
            console.log('Usuário inserido com sucesso!');
        }
    });
};

insertUser('João', 'joao@email.com', 30);

Esse código usa parâmetros ? para prevenir SQL Injection e inserir dados na tabela usuarios.

5. Consultando Dados no SQLite

Para consultar os dados da tabela, use o método all do SQLite. Aqui está um exemplo de como buscar todos os usuários:

const db = require('./database');

const getUsers = () => {
    const query = 'SELECT * FROM usuarios';
    db.all(query, [], (err, rows) => {
        if (err) {
            console.error('Erro ao consultar dados:', err.message);
        } else {
            console.log('Usuários encontrados:', rows);
        }
    });
};

getUsers();

O método all retorna todos os registros da tabela usuarios em formato de array.

6. Atualizando e Excluindo Dados

Você pode atualizar e excluir dados usando os métodos run do SQLite.

Atualizando dados:

const db = require('./database');

const updateUser = (id, idade) => {
    const query = `UPDATE usuarios SET idade = ? WHERE id = ?`;
    db.run(query, [idade, id], (err) => {
        if (err) {
            console.error('Erro ao atualizar usuário:', err.message);
        } else {
            console.log('Usuário atualizado com sucesso!');
        }
    });
};

updateUser(1, 31);

Excluindo dados:

const db = require('./database');

const deleteUser = (id) => {
    const query = `DELETE FROM usuarios WHERE id = ?`;
    db.run(query, [id], (err) => {
        if (err) {
            console.error('Erro ao excluir usuário:', err.message);
        } else {
            console.log('Usuário excluído com sucesso!');
        }
    });
};

deleteUser(1);

Conclusão

O SQLite é uma excelente opção para armazenar dados localmente em aplicações que não exigem um banco de dados complexo. Ele é fácil de configurar, leve e eficiente para aplicações móveis, desktop e projetos pequenos a médios. Usando o Node.js e o pacote sqlite3, você pode criar, manipular e consultar dados de forma simples e eficiente.

SQLite é um banco de dados relacional extremamente útil, especialmente para aplicações pequenas ou projetos pessoais. Ele não requer a instalação de um servidor de banco de dados separado e armazena os dados em um único arquivo, tornando-o ideal para aplicações móveis ou sistemas embarcados.

No entanto, em sistemas com grande volume de dados ou aplicações de grande escala, é mais indicado utilizar bancos como MySQL, PostgreSQL ou MongoDB, que oferecem mais recursos de escalabilidade.

Algumas aplicações:

  • Aplicações de desktop simples
  • Sistemas embarcados e IoT
  • Armazenamento local de dados em dispositivos móveis
  • Prototipagem rápida e MVPs
  • Sistemas de gerenciamento de arquivos

Dicas para quem está começando

  • Certifique-se de validar dados antes de inseri-los no banco para evitar falhas de integridade.
  • Use consultas parametrizadas para evitar SQL Injection.
  • Teste o banco localmente antes de mover para produção.
  • Verifique se a performance do SQLite é suficiente para o seu projeto.
  • Considere usar SQLite para protótipos rápidos e não para produção em larga escala.

Contribuições de Henrique Almeida

Compartilhe este tutorial: Como configurar um banco de dados SQLite no Node.js?

Compartilhe este tutorial

Continue aprendendo:

Como usar Redis para cache em aplicações Node.js?

Redis é um banco de dados em memória altamente eficiente, ideal para armazenar dados temporários e melhorar o desempenho de aplicações. Aprenda a integrá-lo ao seu aplicativo Node.js.

Tutorial anterior

Como usar Firebase com Node.js?

O Firebase oferece uma série de funcionalidades que podem ser integradas ao Node.js, como autenticação, banco de dados em tempo real e armazenamento de arquivos.

Próximo tutorial