Conectando-se ao banco de dados SQLite usando Node.js

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 sqlite3o módulo. Você pode npmfazer isso usando o seguinte comando:

> npm install sqlite3Linguagem de código:  JavaScript  ( javascript )

Depois de instalar o sqlite3mó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:

  1. Primeiro, importe o sqlite3módulo
  2. Segundo, chame a Database()função do sqlite3mó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 sqlite3mó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  Databaseobjeto:

let db = new sqlite3.Database(':memory:');Linguagem de código:  JavaScript  ( javascript )

O sqlite3.Database()retorna um Databaseobjeto 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 errorobjeto como primeiro parâmetro. Se errorocorreu um, o errorobjeto 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 errorevento será emitido. Caso o banco de dados seja aberto com sucesso, o openevento é 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 Databaseobjeto 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 chinookarquivo de banco de dados armazenado na dbpasta, 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:

  1. sqlite3.OPEN_READONLY: abra o banco de dados para somente leitura.
  2. sqlite3.OPEN_READWRITE: abre o banco de dados para leitura e gravação.
  3. 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_CREATEmodo. 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 chinookbanco 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 chinookbanco de dados, consultar dados da playliststabela 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *