Node
Tutorial Node: Conexión a bases de datos sin ORM
SQL y NoSQL: Conoce sus diferencias y aprende a implementarlas con Node.js en PostgreSQL, MySQL; MongoDB sin ORM, mejorando tu aplicación.
Aprende Node GRATIS y certifícateBreve introducción a SQL vs NoSQL
Las bases de datos se divide principalmente en dos paradigmas: SQL (Structured Query Language) y NoSQL (Not Only SQL).
Las bases de datos SQL se caracterizan por una estructura tabular fija, donde los datos se organizan en tablas con filas y columnas bien definidas. Este modelo relacional permite realizar consultas complejas utilizando lenguaje SQL estándar, lo que facilita la integridad y consistencia de los datos. Ejemplos populares incluyen MySQL y PostgreSQL.
Por otro lado, las bases de datos NoSQL ofrecen una mayor flexibilidad al permitir estructuras de datos dinámicas como documentos JSON, grafos, pares clave-valor y columnas anchas. Esta característica es especialmente útil para manejar grandes volúmenes de datos no estructurados o semi-estructurados. MongoDB es uno de los sistemas NoSQL más utilizados en el desarrollo con Node.js.
Una diferencia clave es que las bases de datos SQL enfatizan las relaciones y la normalización de datos, mientras que las bases de datos NoSQL priorizan la escalabilidad horizontal y el rendimiento en entornos distribuidos. En sistemas donde la coherencia transaccional es crítica, SQL suele ser la opción preferida. Sin embargo, si se requiere una alta disponibilidad y escalabilidad, NoSQL puede ser más apropiado.
En el contexto de Node.js, la elección entre SQL y NoSQL afecta cómo se manejarán las operaciones de lectura y escritura en la aplicación. Las bases de datos NoSQL, al utilizar formatos como JSON, se integran de forma nativa con JavaScript, lo que puede simplificar el desarrollo. Sin embargo, las bases de datos SQL cuentan con herramientas maduras y ofrecen consultas más estructuradas.
Es importante considerar el modelo de datos, las necesidades de escalado y los requisitos de consistencia al decidir qué tipo de base de datos utilizar en un proyecto con Node.js. Ambas tecnologías tienen sus fortalezas y conocerlas permitirá tomar decisiones informadas para el diseño de sistemas.
Conexión a PostgreSQL
Para interactuar con PostgreSQL desde Node.js sin utilizar un ORM, se emplea el módulo nativo pg, que permite ejecutar consultas SQL directamente.
Instalación del módulo pg
Para comenzar, instale el paquete pg mediante npm:
npm install pg
Configuración de la conexión
Configure la conexión importando el objeto Client del módulo pg y estableciendo los parámetros necesarios:
import pg from "pg";
const { Client } = pg;
const client = new Client({
user: "postgres",
password: "example",
database: "example",
host: "localhost",
port: 5433,
});
Es importante reemplazar los valores con sus credenciales y datos de configuración de PostgreSQL.
Establecer la conexión
Con la configuración lista, establezca la conexión utilizando el método connect() y maneje posibles errores:
try {
await client.connect();
console.log("Connected successfully to PostgreSQL");
} catch (error) {
console.error("Error connecting to PostgreSQL", error);
} finally {
await client.end();
}
Implementar la conexión a PostgreSQL sin un ORM en Node.js ofrece un control detallado y puede mejorar el rendimiento si se gestiona correctamente.
Conexión a MySQL
Para interactuar con MySQL desde Node.js sin utilizar un ORM, es común emplear el paquete mysql2, que ofrece funcionalidades avanzadas y soporte para promesas y asincronía utilizando async/await.
Instalación del paquete mysql2
Para comenzar, instale el paquete mysql2 mediante npm:
npm install mysql2
Configuración y conexión a la base de datos
Importe el módulo y configure los parámetros de conexión con la base de datos:
import { createConnection } from "mysql2/promise";
try {
const connection = await createConnection({
host: "localhost",
port: 3307,
user: "example",
password: "example",
database: "example",
});
console.log("Connected successfully to MySQL");
// Realice aquí las operaciones con la base de datos
await connection.end();
} catch (error) {
console.error("Error connecting to MySQL: ", error);
}
Reemplace los valores con sus credenciales y detalles de configuración de MySQL.
Implementar la conexión a MySQL sin un ORM en Node.js le brinda un control completo sobre las operaciones y puede optimizar el rendimiento de su aplicación si se gestiona correctamente.
Conexión a MongoDB
Para interactuar con MongoDB desde Node.js sin utilizar un ORM, se emplea el controlador oficial mongodb. Este controlador permite realizar operaciones directas sobre la base de datos, proporcionando flexibilidad y control sobre las transacciones.
Instalación del controlador mongodb
Instale el paquete mongodb utilizando npm:
npm install mongodb
Configuración de la conexión
Importe el módulo MongoClient del paquete mongodb y establezca la URI de conexión:
import { MongoClient } from 'mongodb';
const uri = 'mongodb://localhost:27018';
Es recomendable utilizar una variable uri para gestionar de forma centralizada la cadena de conexión.
Establecer la conexión
Cree una instancia de MongoClient y utilice el método connect() para establecer la conexión:
const client = new MongoClient(uri);
try {
await client.connect();
console.log('Connected successfully to MongoDB');
} catch (error) {
console.error('Error connecting to MongoDB:', error);
} finally {
await client.close();
}
Seleccionar base de datos y colección
Después de establecer la conexión, seleccione la base de datos y la colección con la que desea trabajar:
const db = client.db('mi_base_de_datos');
const coleccion = db.collection('mi_coleccion');
Reemplace
'mi_base_de_datos'
y'mi_coleccion'
por los nombres correspondientes.
Al conectar Node.js con MongoDB sin un ORM, obtiene un control total sobre las operaciones y puede aprovechar al máximo las características que ofrece esta base de datos NoSQL.
Todas las lecciones de Node
Accede a todas las lecciones de Node y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Node.js
Introducción Y Entorno
Fundamentos Del Entorno Node.js
Introducción Y Entorno
Módulo Http Y Https
Http Y Api Rest
Http Params, Headers Y Body
Http Y Api Rest
Validación De Datos
Http Y Api Rest
Conexión A Bases De Datos Sin Orm
Persistencia
Creación De Consultas Básicas (Crud) Sin Orm
Persistencia
Módulo Fs
Sistema De Archivos
Introducción A La Seguridad
Seguridad
Sesiones Y Cookies
Seguridad
Roles Y Permisos
Seguridad
Testing En Node.js
Testing
Estructura De Carpetas
Arquitectura
Configuración Y Variables De Entorno
Arquitectura
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender las diferencias fundamentales entre SQL y NoSQL.
- Establecer conexiones con PostgreSQL desde Node.js.
- Configurar conexiones a MySQL y MongoDB sin ORM.