Trabalho com bancos de dados em JavaScript: PostgreSQL e MongoDB

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

Introdução ao trabalho com bancos de dados em JavaScript

O desenvolvimento web moderno em JavaScript é impensável sem a interação com bancos de dados. O Node.js fornece ferramentas poderosas para trabalhar tanto com bancos de dados relacionais (SQL) quanto com bancos de dados orientados a documentos (NoSQL). Neste artigo, vamos detalhar a conexão e a execução das operações principais com os dois SGBDs mais populares no ecossistema JavaScript: PostgreSQL e MongoDB.

Você aprenderá como instalar os drivers, configurar a conexão, executar operações CRUD (Create, Read, Update, Delete) e fazer a escolha correta entre SQL e NoSQL para o seu projeto.



Preparação do ambiente

Para trabalhar com os exemplos, você precisará do Node.js instalado (versão 18+) e do gerenciador de pacotes npm. Certifique-se de que os bancos de dados estejam rodando localmente ou acessíveis remotamente.



1. Trabalhando com PostgreSQL no Node.js

PostgreSQL é um poderoso banco de dados relacional de código aberto. Para trabalhar com ele no Node.js, usaremos a biblioteca pg — o cliente oficial.



Instalação e conexão

npm install pg

Vamos criar o arquivo db.js para configurar o pool de conexões:

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

const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'mydb', password: 'secret', port: 5432,});

module.exports = pool;


Operações CRUD com PostgreSQL

Vamos considerar as consultas básicas na tabela users:



Criação da tabela (CREATE)

const createTable = async () => {  const query = `    CREATE TABLE IF NOT EXISTS users (      id SERIAL PRIMARY KEY,      name VARCHAR(100) NOT NULL,      email VARCHAR(255) UNIQUE NOT NULL,      age INTEGER,      created_at TIMESTAMP DEFAULT NOW()    );  `;  await pool.query(query);  console.log('Tabela users criada');};


Inserção de dados (INSERT)

const addUser = async (name, email, age) => {  const text = 'INSERT INTO users(name, email, age) VALUES($1, $2, $3) RETURNING *';  const values = [name, email, age];  const res = await pool.query(text, values);  console.log('Usuário adicionado:', res.rows[0]);  return res.rows[0];};

// UsoaddUser('Ivan Petrov', 'ivan@example.com', 30);


Leitura de dados (SELECT)

const getUsers = async (ageLimit) => {  const res = await pool.query(    'SELECT * FROM users WHERE age > $1 ORDER BY created_at DESC',    [ageLimit]  );  return res.rows;};

// Obter usuários com mais de 25 anosgetUsers(25).then(users => console.log(users));


Atualização e exclusão (UPDATE / DELETE)

const updateUser = async (id, newName) => {  const res = await pool.query(    'UPDATE users SET name = $1 WHERE id = $2 RETURNING *',    [newName, id]  );  return res.rows[0];};

const deleteUser = async (id) => { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log(`Usuário com id ${id} excluído`);};

Importante: Sempre use consultas parametrizadas ($1, $2) para prevenir injeção de SQL.



2. Trabalhando com MongoDB no Node.js

MongoDB é o banco de dados NoSQL mais popular, armazenando dados em formato de documentos semelhantes a JSON. Para trabalhar com ele, usaremos o driver oficial mongodb ou a popular biblioteca ODM mongoose.



Instalação e conexão (usando mongoose)

npm install mongoose
const mongoose = require('mongoose');

const connectDB = async () => { try { await mongoose.connect('mongodb://localhost:27017/mydb'); console.log('MongoDB conectado'); } catch (error) { console.error('Erro de conexão:', error); }};

connectDB();


Definição de esquema e modelo

Blogs

Book Recommendations