Que bonito es nest
Introducción
¿Ya terminaste el Curso de NestJS: Programación Modular?
Platzi Store: presentación del proyecto e instalación
Database
Cómo instalar Docker para este proyecto
Configuración de PostgresSQL en Docker
Explorando postgres con interfaces gráficas y terminal
Integración de node-postgres con NestJS
Conexión como inyectable y ejecutando un SELECT
Usando variables de ambiente
TypeORM
¿Qué es un ORM? Instalando y configurando TypeORM Module
Creando tu primera entidad
TypeORM: active record vs. repositories
Crear, actualizar y eliminar
Cambiar a Mysql demo (opcional)
Migraciones
Sync Mode vs. Migraciones en TypeORM
Configurando migraciones y npm scripts
Corriendo migraciones
Modificando una entidad
Relaciones
Relaciones uno a uno
Resolviendo la relación uno a uno en el controlador
Relaciones uno a muchos
Resolviendo la relación uno a muchos en el controlador
Relaciones muchos a muchos
Resolviendo la relación muchos a muchos en el controlador
Manipulación de arreglos en relaciones muchos a muchos
Relaciones muchos a muchos personalizadas
Resolviendo la relación muchos a muchos personalizada en el controlador
Consultas
Paginación
Filtrando precios con operadores
Agregando indexadores
Modificando el naming
Serializar
Próximos pasos
Cómo solucionar una referencia circular entre módulos
Continúa con el Curso de NestJS: Autenticación con Passport y JWT
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 3
Preguntas 0
Que bonito es nest
// src\products\dtos\products.dtos.ts
// Creamos un nuevo dto
export class FilterProductDto{
@IsOptional()
@IsPositive()
@ApiProperty()
limit:number;
@IsOptional()
@Min(0)
@ApiProperty()
offset: number;
}
// src\products\controllers\products.controller.ts
@Get()
@ApiOperation({ summary: 'List of products' })
getProducts(
// Cambiamos la forma de recibir el parametro
@Query() params: FilterProductDto
) {
return this.productsService.findAll(FilterProductDto);
}
// src\products\services\products.service.ts
// Modificamos el servicio
async findAll(params?: FilterProductDto) {
if (params) {
const { limit, offset } = params;
return this.productRepo.find({
relations: ['brand'],
take: limit,
skip: offset,
});
}
return this.productRepo.find({
relations: ['brand'],
});
}
// src\main.ts
// Activamos la transformacion de forma implicita
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
forbidNonWhitelisted: true,
transformOptions: {
enableImplicitConversion: true
}
}),
);
después de los 30 minutos del anterior video, este de 10 parece de 2, cuando me di cuenta ya se había terminado
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.