Trabalho com bancos de dados em JavaScript: PostgreSQL e MongoDB para iniciantes

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

Trabalhando com Bancos de Dados em JavaScript (Node.js): PostgreSQL e MongoDB para Iniciantes



Ao desenvolver aplicações web em JavaScript (Node.js), quase sempre é necessário armazenar dados: usuários, pedidos, artigos ou logs. Para isso, são utilizados bancos de dados (BD). Neste guia, abordaremos os dois sistemas mais populares: o relacional PostgreSQL e o orientado a documentos MongoDB. Você aprenderá como se conectar a eles a partir do Node.js e realizar operações CRUD básicas (criação, leitura, atualização, exclusão).



O artigo é voltado para desenvolvedores iniciantes familiarizados com os fundamentos do JavaScript. Todos os exemplos de código podem ser executados no seu projeto.



1. PostgreSQL: Banco de Dados Relacional



PostgreSQL é um banco de dados SQL poderoso, onde os dados são armazenados em tabelas com tipos de campos rigorosos. Para trabalhar com ele no Node.js, usaremos o pacote pg.



1.1. Instalação e Conexão



Primeiro, instale o pacote via npm:



npm install pg


Crie um arquivo db.js e configure a conexão com o BD local:



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

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

module.exports = pool;


1.2. Criação de Tabela e Operações CRUD



Para começar, vamos criar a tabela users com os campos id, name e email. Em seguida, realizaremos todas as operações básicas.



const pool = require('./db');

// Criação da tabelaasync function createTable() { await pool.query(` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL ); `); console.log('Tabela users criada');}

// Inserção de dados (CREATE)async function addUser(name, email) { const result = await pool.query( 'INSERT INTO users (name, email) VALUES ($1, $2) RETURNING *', [name, email] ); return result.rows[0];}

// Leitura de dados (READ)async function getUsers() { const result = await pool.query('SELECT * FROM users'); return result.rows;}

// Atualização de dados (UPDATE)async function updateUser(id, name) { const result = await pool.query( 'UPDATE users SET name = $1 WHERE id = $2 RETURNING *', [name, id] ); return result.rows[0];}

// Exclusão de dados (DELETE)async function deleteUser(id) { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log('Usuário excluído');}

// Exemplo de uso(async () => { await createTable(); const newUser = await addUser('Ivan', 'ivan@example.com'); console.log('Adicionado:', newUser);

const users = await getUsers(); console.log('Todos os usuários:', users);

await updateUser(1, 'Pedro'); await deleteUser(2);})();


Importante: Sempre use consultas parametrizadas (através de $1, $2) para evitar injeções de SQL.



2. MongoDB: Banco de Dados NoSQL



MongoDB armazena dados em formato de documentos semelhantes a JSON (BSON). Para Node.js, utiliza-se o driver oficial mongodb ou a biblioteca popular mongoose. Neste exemplo, usaremos o driver.



2.1. Instalação e Conexão



npm install mongodb


Conexão com o MongoDB local (porta padrão 27017):



const { MongoClient } = require('mongodb');

const uri = 'mongodb://localhost:27017';const client = new MongoClient(uri);

async function connect() { await client.connect(); console.log('Conectado ao MongoDB'); return client.db('mydb'); // banco de dados mydb}

module.exports = { connect, client };


2.2. Operações CRUD com Coleção



No MongoDB, as tabelas são chamadas de coleções, e as linhas são

Blogs

Book Recommendations