Profile image
¡Las Tortugas Ninja del backend con Node.js y Express!

¡Las Tortugas Ninja del backend con Node.js y Express!

Fri Dec 06 2024
Desarrollo

¡Hola Chiquis!👋🏻 ¿Listo para dominar el arte del desarrollo backend? Imagina que eres una Tortuga Ninja, con la misión de crear un servidor web poderoso y seguro. Con Node.js y Express, tendrás las armas necesarias para construir APIs REST que harán que tus aplicaciones sean más robustas y escalables.

Node.js: El Maestro Splinter Es como el Maestro Splinter, la base y guía de nuestras Tortugas Ninja. Node.js permite que tu aplicación web se ejecute en el servidor utilizando JavaScript, proporcionando el entorno necesario para que todo funcione.

  • Tu arma secreta: Es como la katana de Leonardo: rápida, eficiente y capaz de ejecutar múltiples tareas al mismo tiempo. Te permite crear servidores web escalables y de alto rendimiento.

Express: La Alcantarilla de las Tortugas Es como la alcantarilla donde viven las Tortugas Ninja. Facilita la creación de rutas y la gestión de solicitudes HTTP en tu aplicación Node.js, proporcionando una estructura organizada y eficiente. 

  • Tu guía ninja: Es como Donatello, el inventor del grupo. Te proporciona un framework ligero y flexible para construir aplicaciones web con Node.js. Con Express, podrás crear rutas, manejar solicitudes y respuestas, y mucho más. Ejemplo:
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
    res.send('¡Bienvenidos a la guarida de las Tortugas Ninja!');
});

app.listen(port, () => {
    console.log(`Servidor corriendo en http://localhost:${port}`);
});

PostgreSQL: Tu base de datos Es como Michelangelo, el artista del grupo. Es una base de datos relacional poderosa y flexible que te permitirá almacenar y gestionar de forma segura los datos de tu aplicación. Parametrización de Consultas: Los Gadgets de Donatello

  • Es como los gadgets que Donatello inventa. Permite enviar y recibir datos de manera segura y eficiente, evitando ataques de inyección SQL. Ejemplo:
const { Pool } = require('pg');
const pool = new Pool({
    user: 'tu_usuario',
    host: 'localhost',
    database: 'tu_base_de_datos',
    password: 'tu_contraseña',
    port: 5432,
});

const obtenerTortugaPorId = async (req, res) => {
    const { id } = req.params;
    try {
        const result = await pool.query('SELECT * FROM tortugas WHERE id = $1', [id]);
        res.json(result.rows[0]);
    } catch (err) {
        res.status(500).json({ error: err.message });
    }
};

API REST: Las Misiones de las Tortugas Es como las misiones que las Tortugas Ninja llevan a cabo. Utiliza métodos HTTP como GET, POST, PUT y DELETE para realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en recursos.

  • Tu comunicación ninja: Es como un lenguaje secreto que te permite comunicar tu aplicación con otras aplicaciones. Con Node.js y Express, podrás crear APIs REST que sigan los principios de REST (Representational State Transfer). Ejemplo:
const express = require('express');
const app = express();
app.use(express.json());

let tortugas = [];

app.get('/tortugas', (req, res) => {
    res.json(tortugas);
});

app.post('/tortugas', (req, res) => {
    const tortuga = req.body;
    tortugas.push(tortuga);
    res.status(201).json(tortuga);
});

app.listen(3000, () => {
    console.log('API REST corriendo en http://localhost:3000');
});

Middlewares: Los Aliados de las Tortugas Son como los aliados que ayudan a las Tortugas Ninja en sus misiones. Realizan tareas intermedias durante el ciclo de vida de una solicitud HTTP, como la autenticación y el manejo de errores.

  • Tus guardias de seguridad: Son como los guardias de seguridad de la Torre de las Tortugas. Te permiten interceptar las solicitudes y respuestas, y realizar tareas como la autenticación, la autorización y la validación de datos. Ejemplo:
const logger = (req, res, next) => {
    console.log(`${req.method} ${req.url}`);
    next();
};

app.use(logger);

CORS: El Escudo de Protección Cross-Origin Resource Sharing es como el escudo de protección que permite que los recursos restringidos en una página web sean solicitados desde otro dominio fuera del dominio desde el cual se sirvió el recurso.

  • Abre las puertas de tu servidor: Es como abrir las puertas de la Torre de las Tortugas a tus amigos. Te permite controlar desde qué dominios se pueden realizar solicitudes a tu servidor. Ejemplo:
const cors = require('cors');
app.use(cors());
tortugas

CRUD: Las Misiones de las Tortugas Son las misiones de las Tortugas Ninja. Permiten Crear, Leer, Actualizar y Eliminar datos en tu aplicación.

Las operaciones básicas: Create, Read, Update, Delete son las operaciones básicas que puedes realizar en una base de datos. Con Node.js y Express, podrás implementar fácilmente estas operaciones en tu API REST.

HATEOAS: El Mapa de la Ciudad Hypermedia As The Engine Of Application State es como el mapa de la ciudad que enriquece las respuestas de la API con enlaces a otros recursos relacionados. 

  • Guiando a tus clientes: Es como un mapa que guía a tus clientes a través de tu API. Te permite incluir enlaces en las respuestas de tu API para que los clientes sepan a dónde ir a continuación. Ejemplo:
const agregarEnlaces = (tortuga) => {
    tortuga.enlaces = [
        { rel: 'self', href: `/tortugas/${tortuga.id}` },
        { rel: 'delete', href: `/tortugas/${tortuga.id}` },
    ];
    return tortuga;
};

const obtenerTortugas = async (req, res) => {
    try {
        const result = await pool.query('SELECT * FROM tortugas');
        const tortugasConEnlaces = result.rows.map(agregarEnlaces);
        res.json(tortugasConEnlaces);
    } catch (err) {
        res.status(500).json({ error: err.message });
    }
};

Autenticación con JWT: El Sable de Leonardo JSON Web Tokens es como el sable de Leonardo. Proporciona una forma segura de autenticar a los usuarios en tu API.

  • Protege tu servidor: JWT es como la máscara de las Tortugas Ninja. Te permite autenticar a los usuarios de forma segura y proteger tus recursos. Ejemplo:
const jwt = require('jsonwebtoken');
const secret = 'mi_secreto';

const autenticarToken = (req, res, next) => {
    const token = req.header('Authorization').replace('Bearer ', '');
    if (!token) {
        return res.status(401).json({ error: 'Acceso denegado' });
    }
    try {
        const verified = jwt.verify(token, secret);
        req.usuario = verified;
        next();
    } catch (err) {
        res.status(400).json({ error: 'Token no válido' });
    }
};

app.get('/perfil', autenticarToken, (req, res) => {
    res.json({ mensaje: 'Acceso autorizado', usuario: req.usuario });
});

Testing: El Entrenamiento Ninja Es como el entrenamiento ninja de las Tortugas. Asegura que tu código funcione correctamente y que no haya errores ocultos.

  • Asegúrate de que todo funcione: Es como entrenar para una batalla. Te permite asegurarte de que tu código funcione correctamente y de que no haya errores. Ejemplo:
npm install jest supertest
const request = require('supertest');
const app = require('../index');

describe('GET /tortugas', () => {
    it('debería devolver una lista de tortugas', async () => {
        const res = await request(app).get('/tortugas');
        expect(res.statusCode).toEqual(200);
        expect(res.body).toHaveProperty('length');
    });
});

Recursos adicionales

Conclusión ¡Conviértete en un maestro ninja del backend! Con Node.js, Express y PostgreSQL, tendrás todas las herramientas necesarias para crear APIs REST poderosas y escalables. ¡Así que ponte tu máscara y comienza tu entrenamiento!

¡Gracias por leer! 👇🏻 🚀 ¿Te ha gustado? Comparte tu opinión. Artículo completo, visita: https://lnkd.in/ewtCN2Mn https://lnkd.in/eAjM_Smy 👩💻 https://lnkd.in/eKvu-BHe https://dev.to/orlidev https://lnkd.in/ecHHabTD https://pin.it/2BuZ9N4n8 https://linktr.ee/orlidevs ¡No te lo pierdas!

Referencias: Imágenes creadas con: Copilot ( microsoft.com )

#PorUnMillóndeAmigos #MakeYourselfVisible

img167