Almacenamiento de Datos con MySQL en Node.js
Clase 14 de 29 • Curso de Node.js: Autenticación, Microservicios y Redis
Resumen
¿Cómo almacenar datos con MySQL en Node.js?
En este módulo aprenderemos a almacenar datos de manera eficiente en una base de datos MySQL utilizando Node.js. La transición de una base de datos temporal a MySQL nos permitirá gestionar datos de forma más robusta y fiable. ¡Manos a la obra!
¿Cómo resolver el reto del módulo anterior?
Antes de continuar con MySQL, resolveremos el reto de clases anteriores. La solución implica manejar errores en un servidor Express:
- Simplemente cambiamos el manejo de errores para usar la función
next()
de Express. - Esto elimina la necesidad de gestionar errores manualmente en las rutas, automatizando el proceso.
¿Cómo configurar MySQL y establecer una conexión?
Primero, necesitamos instalar y configurar MySQL en nuestro proyecto de Node.js.
-
Instalar MySQL mediante npm:
npm install mysql
-
Configurar la conexión: Creamos un nuevo archivo
mysql.js
donde definimos nuestra configuración de conexión.const mysql = require('mysql'); const dbConfig = { host: config.mysql.host, user: config.mysql.user, password: config.mysql.password, database: config.mysql.database }; const connection = mysql.createConnection(dbConfig);
-
Módulo para manejar conexiones: Creamos una función
handleConnection
para gestionar la conexión y rehacerla en caso de errores.function handleConnection() { connection.connect((error) => { if (error) { console.error('DB error:', error); setTimeout(handleConnection, 2000); } }); connection.on('error', (error) => { if (error.code === 'PROTOCOL_CONNECTION_LOST') { handleConnection(); } else { throw error; } }); } handleConnection();
¿Cómo crear y configurar una base de datos MySQL en un entorno de prueba?
Para el entorno de desarrollo, podemos usar servicios gratuitos como remotemysql.com
que permiten crear bases de datos de pruebas hasta 100MB.
- Regístrese o inicie sesión en
remotemysql.com
. - Crea una nueva base de datos en la sección de bases de datos.
- Copia las credenciales proporcionadas para conectarte a la base de datos en tu archivo de configuración.
¿Cómo definir estructuras de tablas y llenar datos iniciales?
Una vez conectados, necesitamos definir las tablas necesarias en la base de datos y llenarlas con datos iniciales.
-
Crear una tabla de usuarios:
CREATE TABLE Users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(32) NOT NULL, email VARCHAR(64) NOT NULL );
-
Insertar datos de ejemplo:
INSERT INTO Users (username, email) VALUES ('JuanCarlos', 'juancarlos@example.com');
¿Cómo ejecutar consultas SQL desde Node.js?
Para manipular datos desde Node.js, creamos funciones que ejecuten consultas SQL.
-
Listar usuarios:
function listUsers() { return new Promise((resolve, reject) => { connection.query('SELECT * FROM Users', (error, results) => { if (error) return reject(error); resolve(results); }); }); }
-
Manejar errores y respuestas:
- Podríamos agregar un manejo de errores de conexión y asegurar que las promesas devuelven datos esperados o errores de forma controlada.
Ahora, al ejecutar las funciones, vemos que podemos gestionar y manipular datos almacenados eficientemente en MySQL desde nuestro servidor de Node.js. A medida que avances, te animamos a desarrollar funciones adicionales para operaciones CRUD completas y optimizar tu aplicación para un manejo de datos aún más robusto. ¡Sigue aprendiendo y experimentando con MySQL!