Establecer códigos de estado en NestJS es esencial para informar al cliente sobre el resultado de una solicitud HTTP. Con su diseño modular y herramientas integradas, NestJS simplifica la gestión de respuestas y códigos de estado personalizados.
@HttpCode
El decorador @HttpCode
permite establecer el código de estado de la respuesta en métodos de controladores. Por defecto, NestJS usa el código 200 OK en respuestas exitosas, pero este decorador permite personalizarlo fácilmente.
import { Controller, Post, HttpCode } from '@nestjs/common';
@Controller('usuarios')
export class UsuariosController {
@Post()
@HttpCode(201) // Código para 'Creado'
crearUsuario() {
return { mensaje: 'Usuario creado con éxito' };
}
}
Response
Si usas Express como framework subyacente, puedes acceder al objeto de respuesta para definir códigos de estado directamente:
import { Controller, Res, Post } from '@nestjs/common';
import { Response } from 'express';
@Controller('productos')
export class ProductosController {
@Post()
crearProducto(@Res() res: Response) {
res.status(201).json({ mensaje: 'Producto creado' });
}
}
Nota: Este enfoque deshabilita la capa de serialización automática de NestJS.
HttpException
Para enviar respuestas con códigos de error personalizados, utiliza HttpException
o sus clases derivadas como BadRequestException
o NotFoundException
.
import { Controller, Get, Param, NotFoundException } from '@nestjs/common';
@Controller('articulos')
export class ArticulosController {
@Get(':id')
obtenerArticulo(@Param('id') id: string) {
if (id !== '123') {
throw new NotFoundException('Artículo no encontrado');
}
return { id, nombre: 'Artículo de ejemplo' };
}
}
Consulta la documentación oficial de NestJS para más detalles sobre cómo gestionar códigos de estado.
Jorge García
Fullstack developer