Skip to content

Instantly share code, notes, and snippets.

@WanerValencia
Last active August 23, 2023 15:01
Show Gist options
  • Save WanerValencia/c94656408db91b362a4614e66ac01042 to your computer and use it in GitHub Desktop.
Save WanerValencia/c94656408db91b362a4614e66ac01042 to your computer and use it in GitHub Desktop.
NEST CLI OVERVIEW

NestJS

NestJS es un marco de trabajo de servidor eficiente, confiable y escalable para aplicaciones web basado en Node.js y TypeScript. NestJS utiliza principios de programación orientada a objetos, programación funcional y programación funcional reactiva. Fue diseñado para ayudar a los desarrolladores a crear aplicaciones de una manera sencilla y coherente, proporcionando un ecosistema de aplicación completo que incluye todo, desde el manejo de solicitudes HTTP hasta la abstracción de bases de datos.

Uso de la interfaz de línea de comandos (CLI) de NestJS

La interfaz de línea de comandos (CLI) de NestJS es una herramienta poderosa que facilita el desarrollo y la organización de tu aplicación NestJS. La CLI puede crear esqueletos de los distintos componentes de tu aplicación, como módulos, servicios y controladores, entre otros.

Instalación

Para instalar la CLI de NestJS globalmente en tu máquina, usa el siguiente comando en tu terminal:

npm i -g @nestjs/cli

Crear una nueva aplicación

Para crear una nueva aplicación, puedes usar el comando nest new seguido del nombre de tu aplicación:

nest new my-nest-app

Esto creará un nuevo directorio con el nombre my-nest-app, instalará todas las dependencias necesarias y configurará un esqueleto de aplicación básica.

Generar componentes

La CLI de NestJS puede generar esqueletos de componentes como módulos, controladores y servicios. Por ejemplo, para generar un nuevo módulo, puedes usar el comando nest g module seguido del nombre de tu módulo:

nest g module my-module

Para generar un controlador, puedes usar nest g controller seguido del nombre de tu controlador:

nest g controller my-controller

Y para generar un servicio, puedes usar nest g service seguido del nombre de tu servicio:

nest g service my-service

Generar un recurso CRUD completo

Si quieres generar un recurso CRUD completo (Controlador, Servicio, Módulo), puedes usar la opción resource. Esto generará un conjunto de archivos preconfigurados para manejar operaciones CRUD básicas. Ejemplo:

nest g resource tasks

Generar decoradores

NestJS CLI no ofrece un comando incorporado para generar decoradores, pero puedes crearlos manualmente en su respectivo directorio. Aquí tienes un ejemplo de cómo podrías crear un decorador de usuario personalizado:

// user.decorator.ts
import { createParamDecorator, ExecutionContext } from '@nestjs/common';

export const User = createParamDecorator(
  (data: unknown, ctx: ExecutionContext) => {
    const request = ctx.switchToHttp().getRequest();
    return request.user;
  },
);

Generar guards

Puedes generar un guard con el comando guard de la CLI de NestJS. Este comando creará un esqueleto básico de guardia. Ejemplo:

nest g guard tasks

Esto generará un archivo tasks.guard.ts con un esqueleto básico de guardia.

// tasks.guard.ts
import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
import { Observable } from 'rxjs';

@Injectable()
export class TasksGuard implements CanActivate {
  canActivate(
    context: ExecutionContext,
  ): boolean | Promise<boolean> | Observable<boolean> {
    return true;
  }
}

Puedes personalizar este guard para implementar tu propia lógica de autorización.

Ejecutar la aplicación

Para iniciar tu aplicación, puedes usar el comando nest start. Si quieres iniciar la aplicación en modo de desarrollo, puedes usar nest start --watch.

nest start

Recomendaciones

  • Utiliza la CLI para generar los esqueletos de tus componentes. Esto te asegurará que se sigan las mejores prácticas y la estructura correcta de los archivos.
  • Utiliza la opción --dry-run cuando generes componentes si quieres ver qué archivos se crearán sin realmente crearlos.
  • Utiliza nest start --watch en desarrollo para habilitar la recarga en caliente de tu aplicación.
  • Explora todas las opciones de la CLI con el comando nest --help. La CLI de NestJS tiene muchas características útiles que pueden facilitar tu desarrollo. https://docs.nestjs.com/cli/overview
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment