Trabalho com bancos de dados em JavaScript: PostgreSQL e MongoDB no Node.js

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

Trabalho com bancos de dados em JavaScript: PostgreSQL e MongoDB no Node.js



O desenvolvimento web moderno em JavaScript é impensável sem um gerenciamento eficiente de dados. Node.js, como plataforma de servidor, fornece ferramentas poderosas para interagir com diversos sistemas de gerenciamento de banco de dados (SGBD). Neste artigo, vamos explorar detalhadamente o trabalho com duas soluções populares — a relacional PostgreSQL e a orientada a documentos MongoDB. Você aprenderá como se conectar a esses bancos de dados, executar operações CRUD (criação, leitura, atualização, exclusão) e fazer uma escolha consciente entre eles.



O material será útil tanto para desenvolvedores iniciantes que estão começando no backend com JavaScript, quanto para profissionais experientes que desejam sistematizar seus conhecimentos. Todos os exemplos de código são escritos para o ambiente de execução Node.js.



Preparação do ambiente e instalação dos drivers



Antes de começar a trabalhar, é necessário instalar os pacotes correspondentes via npm. Para PostgreSQL, utiliza-se o driver pg, e para MongoDB, o driver oficial mongodb ou a popular biblioteca ODM mongoose.



Crie um novo projeto e instale as dependências:



mkdir db-example && cd db-examplenpm init -ynpm install pg mongoose


Agora seu ambiente está pronto para experimentos. Certifique-se de que os servidores de banco de dados correspondentes estejam em execução na sua máquina (PostgreSQL na porta 5432 e MongoDB na porta 27017).



1. Trabalho com PostgreSQL através do driver pg



PostgreSQL é um poderoso SGBD relacional com suporte a SQL. Para interagir com ele no Node.js, utiliza-se o pacote pg, que fornece tanto um pool de conexões quanto um cliente individual.



Vamos considerar um exemplo básico de conexão e execução de consultas:



const { Pool } = require('pg');

// Configuração do pool de conexõesconst pool = new Pool({ user: 'postgres', host: 'localhost', database: 'testdb', password: 'your_password', port: 5432,});

// Função assíncrona para trabalhar com o banco de dadosasync function runPostgresExample() { try { // Criação da tabela await pool.query(` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, age INTEGER ); `);

// INSERT — adição de dados const insertResult = await pool.query( 'INSERT INTO users (name, email, age) VALUES ($1, $2, $3) RETURNING *', ['Ivan Petrov', 'ivan@example.com', 30] ); console.log('Usuário adicionado:', insertResult.rows[0]);

// SELECT — leitura de dados const selectResult = await pool.query('SELECT * FROM users'); console.log('Todos os usuários:', selectResult.rows);

// UPDATE — atualização de dados await pool.query( 'UPDATE users SET age = $1 WHERE name = $2', [31, 'Ivan Petrov'] ); console.log('Idade atualizada');

// DELETE — exclusão de dados await pool.query('DELETE FROM users WHERE name = $1', ['Ivan Petrov']); console.log('Usuário removido'); } catch (err) { console.error('Erro no PostgreSQL:', err.message); } finally { await pool.end(); }}

runPostgresExample();


Observe o uso de consultas parametrizadas com placeholders $1, $2, etc. Isso protege contra injeção de SQL e é uma boa prática. O pool de conexões é recomendado para ambientes de produção, pois gerencia as conexões de forma eficiente.



2. Trabalho com MongoDB através do Mongoose



MongoDB é um banco de dados NoSQL que armazena dados em um formato semelhante a JSON (BSON). Mongoose fornece uma abstração conveniente com schemas, validação e métodos para trabalhar com coleções.



Exemplo de conexão e operações CRUD com Mongoose:



const mongoose = require('mongoose');

// Definição do schema do usuárioconst ```

Blogs

Book Recommendations