Node.js

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ícate

Breve 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.

Para seguir leyendo hazte Plus

¿Ya eres Plus? Accede a la app

Plan mensual

19.00 € /mes

Precio normal mensual: 19 €
47 % DE DESCUENTO

Plan anual

10.00 € /mes

Ahorras 108 € al año
Precio normal anual: 120 €
Aprende Node GRATIS online

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.

Accede GRATIS a Node y certifícate

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender las diferencias fundamentales entre SQL y NoSQL.
  2. Establecer conexiones con PostgreSQL desde Node.js.
  3. Configurar conexiones a MySQL y MongoDB sin ORM.