MENU

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:

1
2
3
4
5
6
7
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:

1
2
3
4
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

Leave a Comment!

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