Trabajo con bases de datos en JavaScript: PostgreSQL y MongoDB para principiantes

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

Trabajo con bases de datos en JavaScript (Node.js): PostgreSQL y MongoDB para principiantes



Al desarrollar aplicaciones web en JavaScript (Node.js), casi siempre es necesario guardar datos: usuarios, pedidos, artículos o registros. Para ello se utilizan bases de datos (BD). En esta guía, analizaremos los dos sistemas más populares: la relacional PostgreSQL y la orientada a documentos MongoDB. Aprenderá cómo conectarse a ellas desde Node.js y realizar operaciones CRUD básicas (crear, leer, actualizar, eliminar).



El artículo está dirigido a desarrolladores principiantes familiarizados con los fundamentos de JavaScript. Todos los ejemplos de código se pueden ejecutar en su proyecto.



1. PostgreSQL: base de datos relacional



PostgreSQL es una potente base de datos SQL donde los datos se almacenan en tablas con tipos de campos estrictos. Para trabajar con ella en Node.js, usaremos el paquete pg.



1.1. Instalación y conexión



Primero, instale el paquete a través de npm:



npm install pg


Cree un archivo db.js y configure la conexión a la base de datos local:



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

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

module.exports = pool;


1.2. Creación de tabla y operaciones CRUD



Para empezar, crearemos una tabla users con los campos id, name y email. Luego, realizaremos todas las operaciones básicas.



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

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

// Inserción de datos (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];}

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

// Actualización de datos (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];}

// Eliminación de datos (DELETE)async function deleteUser(id) { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log('Usuario eliminado');}

// Ejemplo de uso(async () => { await createTable(); const newUser = await addUser('Iván', 'ivan@example.com'); console.log('Añadido:', newUser);

const users = await getUsers(); console.log('Todos los usuarios:', users);

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


Importante: Utilice siempre consultas parametrizadas (a través de $1, $2) para evitar inyecciones SQL.



2. MongoDB: base de datos NoSQL



MongoDB almacena datos en formato de documentos similares a JSON (BSON). Para Node.js se utiliza el controlador oficial mongodb o la popular biblioteca mongoose. En este ejemplo, usaremos el controlador.



2.1. Instalación y conexión



npm install mongodb


Conexión a MongoDB local (puerto predeterminado 27017):



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

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

async function connect() { await client.connect(); console.log('Conectado a MongoDB'); return client.db('mydb'); // base de datos mydb}

module.exports = { connect, client };


2.2. Operaciones CRUD con la colección



En MongoDB, las tablas se llaman colecciones y las filas se

Blogs

Book Recommendations