[go: up one dir, main page]

0% found this document useful (0 votes)
1K views3 pages

Nest Cheatsheet

This document provides information about NestJS, an Node.js framework for building server-side applications. It outlines how to install the NestJS CLI, generate new projects and common components like modules, controllers, services using CLI commands. It also describes decorators, pipes and common HTTP methods that can be used in NestJS.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views3 pages

Nest Cheatsheet

This document provides information about NestJS, an Node.js framework for building server-side applications. It outlines how to install the NestJS CLI, generate new projects and common components like modules, controllers, services using CLI commands. It also describes decorators, pipes and common HTTP methods that can be used in NestJS.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

NestJS

Página de Atajos
Instalar Nest.js CLI: Command line interface

npm i -g @nestjs/cli Banderas adicionales útiles


# Confirmar qué hará el comando
nest g s nombre --dry-run | -d
Nuevo proyecto: en el path actual

nest new project-name # No archivo de pruebas automático


nest g s nombre —no-spec


Comandos útiles del CLI

nest generate <comando> Métodos HTTP comunes

nest g <comando> Import {


Get, Post, Put, Path, Delete


Mostrar ayuda: en cualquier comando
} from '@nestjs/common';

nest -h
nest g -h Argumentos de Métodos HTTP:

nest g s nombre -h

Aplica a cualquier método http

# Default Get
Componentes comunes: Añadir -h para extras
@Get()
# Crear una clase
nest g cl <path/nombre> # Con segmento dinámico
@Get(':id')
# Crear un controlador # Especificando una ruta
nest g co <path/nombre> @Get('cats/breed')
@Get(['cats','breed'])
# Crear un decorador
nest g d <path/nombre> # Paths dinámicos
@Get(':product/:size')
# Crear un guard

nest g gu <path/nombre>
Extraer información de la solicitud (request)

# Crear un interceptor # Obtener parámetros / segmentos


nest g in <path/nombre> @Param('id')
# Crear un módulo # Obtener el body de la petición
nest g mo <path/nombre> @Body()

# Crear un pipe # Obtener los parámetros de query


nest g pi <path/nombre> @Query()

# Crear un servicio # Obtener respose (Express/Fastify)


nest g s <path/nombre> # Importarse desde express/fastify
@Res()

# Crear un recurso completo


nest g resource <nombre> Convertir :id del segmento a entero

@Get(':id')
Pipes integrados por defecto
async findOne(
@Param('id', ParseIntPipe) id: number
ValidationPipe ParseIntPipe ){
return this.catsService.findOne(id);
ParseBoolPipe ParseArrayPipe
}

ParseFloatPipe ParseUUIDPipe

https://docs.nestjs.com/ fernando-herrera.com

NestJS
Página de Atajos
Librerías externas útiles:
Building Blocks:
yarn add class-validator class-transformer Guards:


Usados para permitir o prevenir acceso a una ruta.


Ej: Aquí es donde se debe de autorizar una solicitud.

Algunos decoradores de Class Validator


IsOptional IsPositive IsMongoId Interceptors:


Before Interceptor: interceptan la solicitud (request) y
IsArray IsString IsUUID la pueden transformar completamente basado en las
IsDecimal IsDate IsDateString necesidades.

Ej: caché o logs

IsBoolean IsEmail IsUrl


Pipes:
Con guración global de pipes
Transformar la data recibida en requests, para
app.useGlobalPipes( asegurar un tipo, valor o instancia de un objeto.

new ValidationPipe({ Ej: Transformar a números, validaciones, etc.

whitelist: true,
forbidNonWhitelisted: true, Controllers:

}) Controlan rutas, son los encargados de escuchar la


); solicitud y emitir una respuesta.


Ej: Rutas CRUD

whiteList: Remueve todo lo que no está


incluído en los DTOs
Decoradores: Estos se puede aplicar a cualquier nivel
Expanden la funcionalidad de el método, propiedad o
forbidNonWhiteListed: Retorna bad request
clase a la cual se adjuntan. Nest.js busca aplicar el
si hay propiedades en el objeto no requeridas
principio DRY fuertemente con decoradores.

Ej: @Controller(‘usuarios’), @Ip(), @CustomDecorator()

Estructura de módulo recomendado:


src Services:

- common Alojan la lógica de negocio de tal manera que sea


——— decorators reutilizable mediante inyección de dependencias.

——— dtos Ej: PeliculasService para todo lo relacionado a obtener,


——— filters grabar, actualizar o eliminar información de películas.

——— guards

——— interceptors Interceptors:


——— middleware After Interceptor: Intercepta la respuesta que emitirá
——— pipes el controlador y la puede transformar completamente
— common.controller.ts basado en las necesidades.

— common.module.ts Ej: Estandarizar nuevas necesidades, añadir


— common.service.ts información adicional o almacenar en caché la

respuesta.

Con guraciones globales:


Exception Filters:
Que no requieren el “execution context”
Maneja los errores de código en mensajes de
const app = await NestFactory.create(AppModule); respuesta http. Usualmente Nest ya incluye todos los
casos de uso comunes, pero se pueden expandir
app.useGlobalFilters( new Filtro1, … ); basado en las necesidades.

app.useGlobalGuards( new Guard1, … );


app.useGlobalInterceptors( new Inter1, … ); BadRequestException UnauthorizedException
app.useGlobalPipes( new Pipe1, … );

NotFoundException ForbiddenException

RequestTimeoutException GoneException

PayloadTooLargeException InternalServerErrorException

https://docs.nestjs.com/ fernando-herrera.com
SesgATeB

fi
fi

NestJS
Página de Atajos

Module:
Habilitar CORS:

Agrupan y desacoplan un conjunto de funcionalidad const app = await NestFactory.create(AppModule);


especí ca por dominio.

Ej: auth.module.ts, encargado de todo lo relacionado a app.enableCors();


la autenticación
app.enableCors( options );

@WebSocketGateway({ cors: true }); // Socket


Middlewares:

Modi can o mejoran los objetos de solicitudes o


respuestas (request / response). Pueden terminar el Cookies: Hay que habilitarlas primero con su de nición de TS

ciclo de ejecución, pero no tienen acceso al resultado yarn add cookie-parser


de la ruta.
yarn add -D @types/cookie-parser
Ciclo de vida npm i cookie-parser
De forma general, estos son los pasos tradicionales,
npm i -D @types/cookie-parser
pero los decoradores pueden ir en cada etapa.

import * as cookieParser from 'cookie-parser';



Middlewares …
const app = await NestFactory.create(AppModule);
app.use( cookieParser() );
Exception Zone

Guards Variables de entorno: .env les

Crear en el root del proyecto el archivo .env

yarn add @nestjs/config

npm i @nestjs/config
Before Interceptor
app.module.ts

import { Module } from '@nestjs/common';


import { ConfigModule } from '@nestjs/config';

@Module({
Pipes imports: [ConfigModule.forRoot()],
})
Mismo Interceptor export class AppModule {}

Controllers Decorators Uso de variables .env: inyectar esto

constructor(
private readonly configService:ConfigService
){}

Servir contenido estático: crear directorio public

After Interceptor yarn add @nestjs/serve-static

@Module({
imports: [
ServeStaticModule.forRoot({
rootPath: join(__dirname,’..’,’public’),
})
],
Exception Filters
})
export class AppModule {}

https://docs.nestjs.com/ fernando-herrera.com
ccccc
oo

fi

fi

fi

fi

You might also like