Volver a la página principal
sábado 4 enero 2025
7

Cómo establecer códigos de estado en NestJS

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.

Métodos para establecer códigos de estado en NestJS

Uso del decorador @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' };
  }
}

Métodos auxiliares de la clase 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.

Manejo de errores con 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' };
  }
}

Algunos ejemplos comunes de códigos de estado

  • 201 Created: Cuando se crea un recurso con éxito.
  • 400 Bad Request: Para solicitudes mal formadas.
  • 404 Not Found: Cuando no se encuentra el recurso solicitado.
  • 500 Internal Server Error: Para errores inesperados del servidor.

Referencia oficial

Consulta la documentación oficial de NestJS para más detalles sobre cómo gestionar códigos de estado.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer