Introdução ao trabalho com bancos de dados em JavaScript (Node.js)
\nO desenvolvimento web moderno raramente ocorre sem interação com bancos de dados. Seja para armazenar usuários, postagens de blog ou dados para análise — saber trabalhar com bancos de dados (BD) é uma habilidade obrigatória para todo desenvolvedor. Neste artigo, abordaremos dois dos tipos mais populares de bancos de dados: o relacional PostgreSQL e o orientado a documentos MongoDB. Escreveremos exemplos simples em JavaScript (Node.js) que ajudarão você a começar a trabalhar com ambos os sistemas.
\n\n1. Preparação do ambiente e instalação de dependências
\nAntes de escrever código, é necessário instalar os drivers para a interação do Node.js com os bancos de dados escolhidos. Para isso, crie um novo projeto e instale os pacotes via npm.
\n\nInstalação dos drivers
\n- \n
- pg — cliente popular para PostgreSQL. \n
- mongoose — ODM (Object Document Mapper) para MongoDB, que simplifica o trabalho com coleções. \n
mkdir db-example && cd db-example\nnpm init -y\nnpm install pg mongoose\n\nAgora seu ambiente está pronto para experimentos.
\n\n2. Trabalho com PostgreSQL a partir do Node.js
\nPostgreSQL é um banco de dados relacional poderoso que utiliza SQL para consultas. Conectaremos a um servidor local, criaremos uma tabela e realizaremos operações básicas de CRUD (Create, Read, Update, Delete).
\n\nConexão ao banco de dados
\nCrie o arquivo postgres.js e adicione o seguinte código para conectar:
const { Pool } = require('pg');\n\nconst pool = new Pool({\n user: 'your_username',\n host: 'localhost',\n database: 'testdb',\n password: 'your_password',\n port: 5432,\n});\n\nasync function connect() {\n try {\n const client = await pool.connect();\n console.log('Conectado ao PostgreSQL');\n client.release();\n } catch (err) {\n console.error('Erro de conexão:', err);\n }\n}\n\nconnect();\n\nCriação de tabela e inserção de dados
\nAgora adicionaremos uma função para criar a tabela users e inserir registros:
async function createTable() {\n const query = `\n CREATE TABLE IF NOT EXISTS users (\n id SERIAL PRIMARY KEY,\n name VARCHAR(100) NOT NULL,\n email VARCHAR(100) UNIQUE NOT NULL\n );\n `;\n await pool.query(query);\n console.log('Tabela users criada');\n}\n\nasync function insertUser(name, email) {\n const query = 'INSERT INTO users (name, email) VALUES ($1, $2) RETURNING *';\n const values = [name, email];\n const res = await pool.query(query, values);\n console.log('Usuário adicionado:', res.rows[0]);\n}\n\n// Exemplo de uso\ncreateTable().then(() => insertUser('Ivan', 'ivan@example.com'));\n\nLeitura e atualização de dados
\nObteremos todos os usuários e atualizaremos o email:
\nasync function getUsers() {\n const res = await pool.query('SELECT * FROM users');\n console.log('Todos os usuários:', res.rows);\n}\n\nasync function updateUserEmail(id, newEmail) {\n const query = 'UPDATE users SET email = $1 WHERE id = $2 RETURNING *';\n const res = await pool.query(query, [newEmail, id]);\n console.log('Usuário atualizado:', res.rows[0]);\n}\n\ngetUsers().then(() => updateUserEmail(1, 'ivan_new@example.com'));\n\nPostgreSQL é ideal para projetos onde a integridade dos dados e relações complexas entre tabelas são importantes.
\n\n3. Trabalho com MongoDB a partir do Node.js
\nMongoDB é um banco de dados NoSQL que armazena dados em um formato semelhante a JSON (BSON). Ele é flexível e não exige um esquema rígido. Para trabalhar, usaremos o Mongoose.
\n\nConexão ao MongoDB
\nCrie o arquivo mongo.js:
const mongoose = require('mongoose');\n\nconst connectDB = async