Usando Sqlite e node.js

“SQLite é uma biblioteca em linguagem C que implementa um banco de dados SQL embutido.” (Wikipedia) Você não precisa de um servidor banco de dados rodando na sua máquina para poder usar o sqlite, o que facilita a vida do programador, além de ser um banco de dados leve.

Para se usar sqlite em node.js devemos fazer o uso de pacote ou módulo que nos ajude, existem vários. Um dos mais conhecidos é o node-sqlite3, que já usei e é realmente muito bom, mas não me agradei da forma com que ele retorna os dados. Por isso fiz o meu próprio módulo para sqlite, que é o sqlite-sync.js.

Instalando

A biblioteca está disponível no NPM e você pode baixa-la e instala-la com o seguinte comando:
npm install sqlite-sync

Usando

O uso do sqlite-sync é bem simples, ele foi desenvolvido para funcionar de forma síncrona ou assíncrona, e a conexão com o banco de dados é totalmente síncrona, por isso o nome. Veja como usar:

var sqlite = require('sqlite-sync');

//Connecting
sqlite.connect('myDatabase.db');

//Create example table
sqlite.run("CREATE TABLE COMPANYS(ID  INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL);");

Fazendo consulta

No sqlite-sync existem várias formas de se fazer um SELECT (veja aqui), a mais simples é esta:

var sqlite = require('sqlite-sync');
sqlite.connect('myDatabase.db');
var rows = sqlite.run("SELECT * FROM myTable");
conosole.log(rows);

Inserindo dados

Assim como a consulta, a inserção pode ser feita de várias maneiras (veja aqui), a mais simples é esta, onde eu passo apenas o nome da tabela e os dados a serem inseridos em forma de objeto JSON, sendo que as chaves do objeto devem ter os mesmos nomes das colunas da tabela:

var sqlite = require('sqlite-sync');

sqlite.connect('myDatabase.db');

//Criando tabela
sqlite.run("CREATE TABLE COMPANYS(ID  INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL);");

//Inserindo dados
var id = sqlite.insert('COMPANYS',{ID: 1, NAME: "My Company"});
console.log(id)//Last insert id

Update

Como você já deve imaginar, para se fazer um UPDATE existem várias maneiras de fazer, veja aqui, e mais simples é esta, onde passo por parâmetro o nome da tabela, os campos a serem alterados, e o campo de referencia que na maioria das vezes é a chave primária da tabela. Veja:

sqlite.update('COMPANYS',{NAME: "My Company"},{ID: 1})

Síncrono e Assíncrono

sqlite-sync tem este nome, mas funciona tanto de forma síncrona como de forma assíncrona para dar ao desenvolvedor a oportunidade de escolher. É possível executar um SQL e receber o retorno em uma variável, ou então passar como parâmetro uma função de retorno (callback), veja exemplos abaixo de como fazer um e outro.

//Síncrono
var rows = sqlite.run("SELECT * FROM myTable");

//Assíncrono
sqlite.runAsync("SELECT * FROM myTable", function(rows){
    conosole.log(rows);
});

Veja mais aqui

Jayr Alencar

Doutorando em Ciências da Computação no Centro de Informática da Universidade Federal do Pernambuco (CIn - UFPE); Mestre pela mesma instituição; Formado em Análise e Desenvolvimento de Sistemas; Católico; Fã de O Senhor do Anéis.

Você pode gostar...

6 Resultados

  1. Ramon disse:

    Boa tarde, o sqlite-sync é compatível com node v0.10.38?

  2. Henrique Gusmão disse:

    Jayr Alencar, estou com problemas utilizando o SQLite para o node.js, eu tenho todas as rotinas para criar tabelas, inicializar e abrir o BD porém na hora de testar no dispositivo real através do Vysor com “ionic run android -l” eu não consigo criar o documento.bd na pasta assests da plataforma android. Pode me ajudar?

  3. Junior Oliveira disse:

    Boa Tarde, eu consigo usar estes metodos com o electron ?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *