-
Uso adecuado de los decoradores: NestJS proporciona una serie de decoradores para ayudarte a desarrollar tu aplicación de manera más eficiente. Por ejemplo, los decoradores
@Get()
,@Post()
,@Put()
,@Delete()
y@Patch()
en tus controladores te permiten manejar fácilmente los diferentes tipos de solicitudes HTTP. Los decoradores@Body()
,@Query()
,@Param()
, etc., te permiten acceder a diferentes partes de la solicitud HTTP.@Post('register') async register(@Body() createUserDto: CreateUserDto) { return this.authService.register(createUserDto); }
-
Encapsula la lógica empresarial en servicios: Mantén los controladores delgados moviendo la lógica empresarial a servicios. Esto ayuda a separar las responsabilidades y hace que tu código sea más mantenible y reutilizable.
@Injectable() export class CatsService { private readonly cats: Cat[] = []; create(cat: Cat) { this.cats.push(cat); } findAll(): Cat[] { return this.cats; } }
-
Manejo adecuado de los errores: Utiliza filtros de excepciones para manejar los errores de manera centralizada.
@Catch(HttpException) export class HttpExceptionFilter implements ExceptionFilter { catch(exception: HttpException, host: ArgumentsHost) { const ctx = host.switchToHttp(); const response = ctx.getResponse(); const request = ctx.getRequest(); const status = exception.getStatus(); response .status(status) .json({ statusCode: status, timestamp: new Date().toISOString(), path: request.url, }); } }
-
Usa Pipes para validación y transformación: Los Pipes son un excelente lugar para manejar la validación de datos de entrada y la transformación de datos. Utiliza el pipe
ValidationPipe
incorporado para la validación automática de datos basada en clases de DTO y decoradores de clase-validator.@Post() async create(@Body(new ValidationPipe()) createCatDto: CreateCatDto) { this.catsService.create(createCatDto); }
-
Sigue los principios SOLID: NestJS se construye alrededor de los principios SOLID, que son un conjunto de conceptos de diseño orientado a objetos que ayudan a hacer tu código más flexible, comprensible y mantenible.
-
Uso de módulos para organizar el código: Los módulos en NestJS ayudan a organizar el código en unidades lógicas. Cada característica de la aplicación debería estar en su propio módulo.
-
Testing: Escribir pruebas para tu código es fundamental. NestJS se integra muy bien con Jest para las pruebas unitarias y con Supertest para las pruebas de extremo a extremo.
-
Documentación: Utiliza herramientas como Swagger para documentar tu API. NestJS se integra fácilmente con swagger a través de
@nestjs/swagger
. -
Uso de configuraciones: Las configuraciones deben ser separadas del código. NestJS proporciona el paquete
@nestjs/config
para manejar las configuraciones de manera eficiente.
Last active
April 28, 2024 02:30
-
-
Save WanerValencia/a41fb7b024cdb197a047febb219fee9a to your computer and use it in GitHub Desktop.
Recomendaciones de buenas prácticas en NestJS
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment