menu

SHARKLABS

Tutorial Simples e Prático sobre Node.js e PostgreSQL

/
/
Tutorial Simples e Prático sobre Node.js e PostgreSQL
bookmark Node.js access_time

Node.js e PostgreSQL

Uma das principais vantagens do Node.js é a sua simplicidade para criar e executar scripts. Em um minuto você cria um arquivo JavaScript e já pode executá-lo, isso é fantástico!

Sobre o PostgreSQL, na minha opinião, atualmente ele é melhor banco de dados relacional e ainda é Open Souce e totalmente gratuito. Já trabalho à muitos anos com PostgreSQL e ele nunca me decepcionou.

Sempre que preciso executar scripts mais complexos ou migrar alguma informação entre bases de dados, eu prefiro fazer isso com Node.js e PostgreSQL.

Driver de Conexão

Existem diversos drivers que conectam o Node.js ao PostgreSQL, mas o que eu mais gosto é o Node-Postgres (este é o link do NPM). Só para você ter uma ideia, este driver tem mais de 1 milhão de downloads semanais (no momento que escrevo este artigo).

Além disso, ele possui recursos bem avançados, como Pool de conexão, conexões TLS/SSL e Native Bindings. Um item que eu gosto muito é o suporte a Promises, uma vez que isso é algo bem importante quando você trabalha com código assíncrono.

Como fica o código?

Depois que o driver está instalado (dúvidas sobre a instalação ver o Get Started), é só criar um arquivo JavaScript e sair programando.

No exemplo abaixo, primeiramente é criado a conexão com o banco de dados, depois é realizada a criação de uma tabela, em seguida é feita inserção de registros e, por fim, é executada uma Query para mostrar os registros que estão armazenados:

let conn;

(async () => {
  connect();
  await createTable();
  await insert();
  await showRows();
})();

function connect() {
  let { Client } = require('pg');
  conn = new Client({
    host: 'localhost',
    database: 'tutorial_nodejs_pg',
    user: 'postgres',
    password: '123456',
    port: 5432,
  });
  conn.connect();
}

async function createTable() {
  await conn.query(`
    create table if not exists people (
      id integer not null,
      name varchar,
      primary key (id)
    )
  `);
  console.log('Table created');
}

async function insert() {
  let { rows } = await conn.query(
    `insert into people (id, name) values (1, 'Paul McCartney'), (2, 'John Lennon') returning *`
  );
  console.log(`Rows inserted: ${rows.length}`);
}

async function showRows() {
  let { rows } = await conn.query(`select * from people`);
  for (const row of rows) {
    console.log(row);
  }
}

Veja que para criar a conexão, basta importar e instanciar a classe Client. A partir disso, é só passar os comandos SQL para função Query. É fácil perceber como o código fica simples e de fácil entendimento.

Dúvidas ou sugestões é só entrar em contato. Abraço.

Autor
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." Martin Fowler