API-Node-Mysql-JWT


 

📦 Cómo crear un CRUD con Node.js y MySQL desde cero 🚀


 
  Aquí te dejo una guía rápida para que implementes un CRUD (Crear, Leer, Actualizar, Eliminar) paso a paso. 🛠️
 

1. Configura el proyecto


 

Crea una carpeta para tu proyecto y abre la terminal:
 

mkdir crud-nodejs-mysql cd crud-nodejs-mysql npm init -y


  Instala las dependencias necesarias:
 

npm install express mysql2 dotenv body-parser cors


 

2. Configura tu base de datos MySQL


  Crea una base de datos y una tabla simple en MySQL. Por ejemplo:
 

CREATE DATABASE crud_example; USE crud_example; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE );


 

3. Crea el archivo de conexión


  Crea un archivo llamado db.js:
 

const mysql = require("mysql2"); require("dotenv").config(); const pool = mysql.createPool({ host: process.env.DB_HOST, user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, }); module.exports = pool.promise();


 

4. Implementa el CRUD


  En tu archivo principal index.js:
 

const express = require("express"); const bodyParser = require("body-parser"); const cors = require("cors"); const db = require("./db"); const app = express(); app.use(cors()); app.use(bodyParser.json()); // CREATE app.post("/users", async (req, res) => { const { name, email } = req.body; try { const [result] = await db.execute( "INSERT INTO users (name, email) VALUES (?, ?)", [name, email] ); res.status(201).json({ id: result.insertId, name, email }); } catch (error) { res.status(500).json({ error: error.message }); } }); // READ app.get("/users", async (req, res) => { try { const [rows] = await db.execute("SELECT * FROM users"); res.json(rows); } catch (error) { res.status(500).json({ error: error.message }); } }); // UPDATE app.put("/users/:id", async (req, res) => { const { id } = req.params; const { name, email } = req.body; try { await db.execute("UPDATE users SET name = ?, email = ? WHERE id = ?", [ name, email, id, ]); res.json({ message: "User updated" }); } catch (error) { res.status(500).json({ error: error.message }); } }); // DELETE app.delete("/users/:id", async (req, res) => { const { id } = req.params; try { await db.execute("DELETE FROM users WHERE id = ?", [id]); res.json({ message: "User deleted" }); } catch (error) { res.status(500).json({ error: error.message }); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => console.log(`Server running on http://localhost:${PORT}`) );


 

5. Configura las variables de entorno


 
  Crea un archivo .env y añade:
 

DB_HOST=localhost DB_USER=tu_usuario DB_PASSWORD=tu_contraseña DB_NAME=crud_example


 

6. Prueba tu CRUD


 

  • Usa Postman o cualquier herramienta para enviar solicitudes HTTP a tu servidor.
     
  • Ejemplo de endpoints:
     

POST /users para crear un usuario.

GET /users para obtener todos los usuarios.

PUT /users/:id para actualizar un usuario.

DELETE /users/:id para eliminar un usuario.
 

💡 Bonus Tip : Si quieres hacer tu código más limpio, separa las rutas y controladores en diferentes archivos. ¡Tu futuro yo te lo agradecerá! 😊

API-Node-Mysql-JWT