Trabajo con bases de datos en JavaScript: PostgreSQL y MongoDB

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course
```html

Introducción al trabajo con bases de datos en JavaScript

El desarrollo web moderno con JavaScript es impensable sin la interacción con bases de datos. Node.js proporciona herramientas potentes para trabajar tanto con bases de datos relacionales (SQL) como con bases de datos orientadas a documentos (NoSQL). En este artículo, analizaremos en detalle la conexión y la ejecución de las operaciones principales con los dos SGBD más populares en el ecosistema JavaScript: PostgreSQL y MongoDB.

Aprenderá cómo instalar los drivers, configurar la conexión, ejecutar operaciones CRUD (Create, Read, Update, Delete) y tomar la decisión correcta entre SQL y NoSQL para su proyecto.



Preparación del entorno

Para trabajar con los ejemplos, necesitará tener instalado Node.js (versión 18+) y el gestor de paquetes npm. Asegúrese de que las bases de datos se estén ejecutando localmente o sean accesibles de forma remota.



1. Trabajo con PostgreSQL en Node.js

PostgreSQL es una potente base de datos relacional de código abierto. Para trabajar con ella en Node.js, utilizaremos la librería pg, el cliente oficial.



Instalación y conexión

npm install pg

Crearemos un archivo db.js para configurar el pool de conexiones:

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

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

module.exports = pool;


Operaciones CRUD con PostgreSQL

Veamos las consultas básicas sobre la tabla users:



Creación de tabla (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('Tabla users creada');};


Inserción de datos (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('Usuario añadido:', res.rows[0]);  return res.rows[0];};

// UsoaddUser('Iván Petrov', 'ivan@example.com', 30);


Lectura de datos (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;};

// Obtener usuarios mayores de 25 añosgetUsers(25).then(users => console.log(users));


Actualización y eliminación (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(`Usuario con id ${id} eliminado`);};

Importante: Utilice siempre consultas parametrizadas ($1, $2) para prevenir inyecciones SQL.



2. Trabajo con MongoDB en Node.js

MongoDB es la base de datos NoSQL más popular, que almacena datos en formato de documentos similares a JSON. Para trabajar con ella, utilizaremos el driver oficial mongodb o la popular librería ODM mongoose.



Instalación y conexión (usando mongoose)

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

const connectDB = async () => { try { await mongoose.connect('mongodb://localhost:27017/mydb'); console.log('MongoDB conectada'); } catch (error) { console.error('Error de conexión:', error); }};

connectDB();


Definición de esquema y modelo

```

Blogs

Book Recommendations