NestJS para JavaScript (Node.js): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es NestJS y por qué usarlo?

NestJS es un framework progresivo para crear aplicaciones backend eficientes, robustas y escalables en Node.js. Su arquitectura expresiva, inspirada en Angular, está construida por defecto sobre TypeScript, pero también es totalmente compatible con JavaScript puro. NestJS abstrae los detalles de bajo nivel de bibliotecas populares como Express (por defecto) o Fastify, proporcionando al desarrollador un potente conjunto de herramientas para organizar el código: módulos, controladores, servicios, proveedores, middleware, guards, interceptors, pipes y filters.

¿Por qué usar NestJS? En el desarrollo web moderno con Node.js, la organización del código suele ser un problema: los scripts simples en Express se convierten rápidamente en un "espagueti" a medida que crece la funcionalidad. NestJS resuelve esto imponiendo una estructura modular clara y principios de inyección de dependencias (Dependency Injection). Esto facilita las pruebas, el mantenimiento y la escalabilidad de la aplicación. El framework es ideal para crear APIs REST, servidores GraphQL, microservicios y aplicaciones en tiempo real (WebSockets).

La principal ventaja de NestJS es su ecosistema. Ofrece módulos oficiales para trabajar con bases de datos (TypeORM, Mongoose, Prisma), autenticación (Passport), validación (class-validator), configuración, colas (Bull), caché y mucho más. Gracias a esto, el desarrollador puede centrarse en la lógica de negocio, sin preocuparse por integrar bibliotecas dispares.

Instalación

Para instalar NestJS se utiliza el gestor de paquetes npm (o yarn). Se recomienda instalar globalmente la herramienta CLI para crear proyectos rápidamente:

npm install -g @nestjs/cli

Una vez instalado el CLI, puedes crear un nuevo proyecto con el comando:

nest new mi-proyecto-nest

Durante la instalación, se te pedirá elegir un gestor de paquetes (npm, yarn o pnpm) y el lenguaje (TypeScript es recomendado, o JavaScript). Si deseas añadir NestJS a un proyecto existente, instala los paquetes principales:

npm install @nestjs/core @nestjs/common @nestjs/platform-express reflect-metadata rxjs

Nota: la biblioteca reflect-metadata es obligatoria para el funcionamiento de los decoradores.

Inicio rápido: ejemplo mínimo funcional

Vamos a crear una API REST sencilla con un solo endpoint que devuelva "Hola Mundo".

Paso 1: Crea el archivo app.controller.js

// app.controller.js
const { Controller, Get } = require('@nestjs/common');

@Controller()
export class AppController {
    @Get()
    getHello() {
        return '¡Hola Mundo!';
    }
}

Paso 2: Crea el archivo app.module.js

// app.module.js
const { Module } = require('@nestjs/common');
const { AppController } = require('./app.controller');

@Module({
    controllers: [AppController],
})
export class AppModule {}

Paso 3: Crea el archivo principal main.js

// main.js
const { NestFactory } = require('@nestjs/core');
const { AppModule } = require('./app.module');

async function bootstrap() {
    const app = await NestFactory.create(AppModule);
    await app.listen(3000);
    console.log('Servidor iniciado en http://localhost:3000');
}
bootstrap();

Paso 4: Ejecuta la aplicación

node main.js

Ahora ve a http://localhost:3000 y verás "¡Hola Mundo!".

Métodos, clases y decoradores principales

A continuación se presentan 8 elementos clave de NestJS con sus firmas, descripciones y ejemplos en JavaScript.

Recommendations