Resumo : neste tutorial, você aprenderá como se conectar a um banco de dados SQLite a partir de aplicativos Node.js.
Instalando o módulo sqlite3
Para interagir com o banco de dados SQLite, você precisa baixar e instalar sqlite3
o módulo. Você pode npm
fazer isso usando o seguinte comando:
> npm install sqlite3
Linguagem de código: JavaScript ( javascript )
Depois de instalar o sqlite3
módulo, você estará pronto para se conectar a um banco de dados SQLite a partir de um aplicativo Node.js.
Para se conectar a um banco de dados SQLite, você precisa:
- Primeiro, importe o
sqlite3
módulo - Segundo, chame a
Database()
função dosqlite3
módulo e passe as informações do banco de dados, como arquivo de banco de dados, modo de abertura e uma função de retorno de chamada.
Conectando-se ao banco de dados na memória
Para abrir uma conexão de banco de dados com um banco de dados na memória, siga as etapas a seguir.
Primeiro, importe o sqlite3
módulo:
const sqlite3 = require('sqlite3').verbose();
Linguagem de código: JavaScript ( javascript )
Observe que o modo de execução está definido como detalhado para produzir longos rastreamentos de pilha.
Segundo, crie um Database
objeto:
let db = new sqlite3.Database(':memory:');
Linguagem de código: JavaScript ( javascript )
O sqlite3.Database()
retorna um Database
objeto e abre a conexão com o banco de dados automaticamente.
Aceita sqlite3.Database()
uma função de retorno de chamada que será chamada quando o banco de dados for aberto com sucesso ou quando ocorrer um erro.
A função de retorno de chamada tem o error
objeto como primeiro parâmetro. Se error
ocorreu um, o error
objeto não é null
, caso contrário, é null
.
Se você não fornecer a função de retorno de chamada e ocorrer um erro durante a abertura do banco de dados, um error
evento será emitido. Caso o banco de dados seja aberto com sucesso, o open
evento é emitido independentemente de um retorno de chamada ser fornecido ou não.
Agora você pode abrir um banco de dados SQLite e fornecer informações detalhadas se ocorrer um erro da seguinte forma:
let db = new sqlite3.Database(':memory:', (err) => {
if (err) {
return console.error(err.message);
}
console.log('Connected to the in-memory SQlite database.');
});
Linguagem de código: JavaScript ( javascript )
É uma boa prática fechar uma conexão com o banco de dados quando terminar. Para fechar uma conexão com o banco de dados, chame o close()
método do Database
objeto da seguinte maneira:
db.close();
Linguagem de código: JavaScript ( javascript )
O close()
método aguardará a conclusão de todas as consultas pendentes antes de fechar o banco de dados.
Semelhante ao método Database()
, o close()
método também aceita um retorno de chamada que indica se ocorreu um erro durante o fechamento da conexão com o banco de dados.
db.close((err) => {
if (err) {
return console.error(err.message);
}
console.log('Close the database connection.');
});
Linguagem de código: JavaScript ( javascript )
A seguir ilustra o código completo para abrir e fechar um banco de dados SQLite na memória:
const sqlite3 = require('sqlite3').verbose();
// open database in memory
let db = new sqlite3.Database(':memory:', (err) => {
if (err) {
return console.error(err.message);
}
console.log('Connected to the in-memory SQlite database.');
});
// close the database connection
db.close((err) => {
if (err) {
return console.error(err.message);
}
console.log('Close the database connection.');
});
Linguagem de código: JavaScript ( javascript )
Vamos executar o programa para ver como funciona.
> node connect.js
Connected to the in-memory SQlite database.
Close the database connection.
Linguagem de código: JavaScript ( javascript )
Como você pode ver, funciona perfeitamente conforme o esperado.
Conectando-se a um banco de dados de arquivos em disco
Para conectar-se a um banco de dados de arquivos em disco, em vez de passar a ':memory:'
string, você passa o caminho para o arquivo de banco de dados.
Por exemplo, para conectar-se ao chinook
arquivo de banco de dados armazenado na db
pasta, use a seguinte instrução:
let db = new sqlite3.Database('./db/chinook.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the chinook database.');
});
Linguagem de código: JavaScript ( javascript )
Existem três modos de abertura:
sqlite3.OPEN_READONLY
: abra o banco de dados para somente leitura.sqlite3.OPEN_READWRITE
: abre o banco de dados para leitura e gravação.sqlite3.OPEN_CREATE
: abra o banco de dados, caso o banco de dados não exista, crie um novo banco de dados.
O sqlite3.Database()
aceita um ou mais modos como segundo argumento. Por padrão, ele usa o OPEN_READWRITE | OPEN_CREATE
modo. Isso significa que se o banco de dados não existir, o novo banco de dados será criado e estará pronto para leitura e gravação.
Para abrir o chinook
banco de dados de amostra para leitura e gravação, você pode fazer o seguinte:
let db = new sqlite3.Database('./db/chinook.db', sqlite3.OPEN_READWRITE, (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the chinook database.');
});
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir mostra o código completo para abrir o chinook
banco de dados, consultar dados da playlists
tabela e fechar a conexão com o banco de dados.
const sqlite3 = require('sqlite3').verbose();
// open the database
let db = new sqlite3.Database('./db/chinook.db', sqlite3.OPEN_READWRITE, (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the chinook database.');
});
db.serialize(() => {
db.each(`SELECT PlaylistId as id,
Name as name
FROM playlists`, (err, row) => {
if (err) {
console.error(err.message);
}
console.log(row.id + "\t" + row.name);
});
});
db.close((err) => {
if (err) {
console.error(err.message);
}
console.log('Close the database connection.');
});
Linguagem de código: JavaScript ( javascript )
Observe que você aprenderá como consultar dados no próximo tutorial.
Neste tutorial, você aprendeu como se conectar a um banco de dados SQLite, seja um banco de dados na memória ou baseado em arquivo de disco.