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

Introdução ao trabalho com bancos de dados em JavaScript (Node.js)

\n

O 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\n

1. Preparação do ambiente e instalação de dependências

\n

Antes 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\n

Instalaçã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
\n
mkdir db-example && cd db-example\nnpm init -y\nnpm install pg mongoose
\n\n

Agora seu ambiente está pronto para experimentos.

\n\n

2. Trabalho com PostgreSQL a partir do Node.js

\n

PostgreSQL é 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\n

Conexão ao banco de dados

\n

Crie o arquivo postgres.js e adicione o seguinte código para conectar:

\n
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\n

Criação de tabela e inserção de dados

\n

Agora adicionaremos uma função para criar a tabela users e inserir registros:

\n
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\n

Leitura e atualização de dados

\n

Obteremos todos os usuários e atualizaremos o email:

\n
async 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\n

PostgreSQL é ideal para projetos onde a integridade dos dados e relações complexas entre tabelas são importantes.

\n\n

3. Trabalho com MongoDB a partir do Node.js

\n

MongoDB é 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\n

Conexão ao MongoDB

\n

Crie o arquivo mongo.js:

\n
const mongoose = require('mongoose');\n\nconst connectDB = async                

Blogs

Book Recommendations