Resumen Final
Resumen Final
Temas:
1. Prisma ORM
• Definición: Prisma es un ORM (Object-Relational-Mapping) moderno
para Node.js que facilita la interacción entre tu aplicación y la base de
datos.
• Características principales:
o Modelo declarativo: Usa un archivo schema.prisma para definir
tu base de datos, incluyendo tablas, relaciones y tipos.
o Autogeneración de código: Prisma genera un cliente (Prisma
Client) para realizar consultas a la base de datos.
o Compatibilidad: Soporta bases de datos como MySQL,
PostgresSQL, SQLite, SQL Server, y MongoDB.
o Ventajas:
▪ Aumenta la productividad al simplificar consultas.
▪ Reduce errores gracias al tipado fuerte.
• Uso básico:
I. Definir el esquema en schema.prisma.
II. Ejecutar migraciones para sincronizar el esquema con la base de
datos.
III. Usar Prisma Client en tu aplicación:
• Operaciones Avanzadas:
o Relaciones entre tablas (1-m, m-n, 1-1)
o Filtrados, ordenamiento y paginación.
3. Esquema JOI
• Definición: JOI es una biblioteca para validar datos en JavaScript.
• Simplifica la verificación de datos de entrada en APIs o formularios.
• Ejemplo básico:
4. Nest
• Definición: NestJS es un framwork de NodeJs para construir
aplicaciones del lado del servidor.
• Características:
o Basado en TypeScript: Aprovecha tipado fuerte y modularidad.
o Arquitectura modular: Organiza aplicaciones en módulos,
controladores y servicios.
o Soporte para herramientas modernas: Incluye integración con
GraphQL, WebSockets, Prisma, entre otros.
o Ejemplo de estructura básica:
▪ Controlador: Define las rutas y las acciones asociadas.
▪ Servicio: Contiene la lógica.
▪ Modulo: Agrupa los controladores y servicios.
5. Pruebas Unitarias:
Definición: Son pruebas que validan unidades individuales de código
(como funciones o métodos para garantizar que funcionan como se espera)
• Herramientas populares:
o Jest: Ideal para NodeJS, con soporte para aserciones y mocks.
o Mocha + Chai: Configuración más flexibles.
• Ventajas :
o Detectan errores en etapas tempranas.
o Facilitan el mantenimiento del código.
6. Socket.IO:
• Definición: Biblioteca que facilita la comunicación bidireciconal en
tiempo real entre el servidor y el cliente.
• Usos comunes:
o Chats en tiempo real.
o Actualizaciones en vivo (notificaciones, datos en tiempo real.)
• Características:
o Usa WebSockets como protocolo base.
o Soporta degradación a HTTP Long Polling si WebSockets no
están disponibles.
• Ejemplo básico:
o Servidor:
o Cliente: