generator-proyecto-nestjs-base
v0.0.1
Published
Un generador Yeoman para proyectos NestJS
Maintainers
Readme
Generador de Proyecto NestJS Base
Este generador crea una estructura básica para un proyecto NestJS, incluyendo la configuración inicial del pipeline, migraciones, pruebas y configuración de entorno.
Requisitos
- Node.js (versión 20 o superior)
- npm (versión 10 o superior)
- Yeoman
Instalación
Primero, asegúrate de tener Yeoman instalado. Si no lo tienes, puedes instalarlo globalmente con:
npm install -g yoLuego, instala el generador de proyecto NestJS base:
npm install -g generator-proyecto-nestjs-baseCrear un Nuevo Proyecto
Para generar un nuevo proyecto NestJS, sigue estos pasos:
Uso Básico
Ejecuta el Generador:
Abre tu terminal y navega al directorio donde quieres crear el proyecto. Luego ejecuta:
yo proyecto-nestjs-baseProporciona Información del Proyecto:
Durante la ejecución del generador, se te pedirá ingresar algunos detalles sobre tu proyecto:
- Nombre del Proyecto: Nombre del proyecto NestJS (ejemplo:
mi-proyecto-nestjs). - Descripción del Proyecto: Una breve descripción del propósito del proyecto.
- Nombre del Proyecto: Nombre del proyecto NestJS (ejemplo:
Finalización:
Una vez completado el proceso, el generador creará la estructura del proyecto en la carpeta especificada.
Uso con Parámetros Opcionales
Puedes pasar parámetros opcionales directamente al ejecutar el generador, evitando así la necesidad de ingresar manualmente cada detalle durante la ejecución:
Nombre del Proyecto: Usa
--projectNamepara especificar el nombre del proyecto.yo proyecto-nestjs-base --projectName="mi-proyecto-nestjs"Descripción del Proyecto: Usa
--projectDescriptionpara especificar una descripción del proyecto.yo proyecto-nestjs-base --projectDescription="Este es un proyecto base de NestJS."
Ejemplo combinando ambos parámetros:
yo proyecto-nestjs-base --projectName="mi-proyecto-nestjs" --projectDescription="Este es un proyecto base de NestJS."Al usar estos parámetros, el generador tomará los valores proporcionados sin solicitarte esa información durante su ejecución.
Configuración del Entorno
El proyecto NestJS utiliza un archivo .env para definir los parámetros de entorno, incluyendo el puerto en el que se ejecutará la aplicación.
Archivo .env
El archivo .env contendrá las configuraciones clave para tu proyecto. Un ejemplo básico del contenido de este archivo sería:
APP_PORT=3000
DATABASE_HOST=postgres://user:password@localhost:5432/mydatabase
JWT_SECRET=mysecretkeyArchivo .env.example
El proyecto generado incluye un archivo .env.example que tiene los parámetros base necesarios para que puedas generar tu propio archivo .env. Simplemente copia el contenido de .env.example y crea un nuevo archivo .env en la raíz de tu proyecto.
cp .env.example .envLuego, asegúrate de ajustar las configuraciones según tus necesidades.
Comandos Post-Generación
Una vez que tu proyecto ha sido generado, sigue estos pasos para ponerlo en funcionamiento:
Instala las Dependencias:
Navega a la carpeta del proyecto generado y ejecuta:
npm installInicia la Aplicación:
Para iniciar la aplicación NestJS en modo desarrollo, ejecuta:
npm run start:devLa aplicación se ejecutará en el puerto especificado en tu archivo
.env. Por defecto, este puerto será3000. Abre tu navegador y navega ahttp://localhost:3000para ver tu nueva aplicación NestJS en acción.
Comandos de Scripts Disponibles
Comandos Generales
Compilar la aplicación:
npm run buildFormatear el código usando Prettier:
npm run formatIniciar la aplicación en modo producción:
npm run start:prod
Comandos para Pruebas
Pruebas Unitarias:
npm run testCobertura de Pruebas:
npm run test:covPruebas E2E:
npm run test:e2ePruebas en modo observación (watch mode):
npm run test:watch
Migraciones con TypeORM
Generar migraciones:
npm run migration:generateEjecutar migraciones:
npm run migration:runRevertir migraciones:
npm run migration:revertMostrar el registro de migraciones:
npm run migration:log
Docker
Si deseas ejecutar la aplicación usando Docker, puedes hacerlo con el siguiente comando:
npm run docker:runEste comando construirá la imagen de Docker y la ejecutará en un contenedor.
Estructura del Proyecto
El proyecto generado tendrá una estructura similar a la siguiente:
- dist
- src
- common
- decorators
- exception-filters
- guards
- interceptors
- interfaces
- middlewares
- pipes
- serializers
- utils
- core.module.ts
- shared.module.ts
- config
- database.config.ts
- migrations
- modules
- auth
- funcionalidades
- usuarios
- registros
- app.controller.ts
- app.module.ts
- app.service.ts
- main.ts
- testServicios Implementados:
Login
Parámetros de Entrada
{
"username": "usertest",
"password": "123456"
}Ambos parámetros son requeridos.
Descripción
Recibe el nombre de usuario y la contraseña de la persona que quiere iniciar sesión. Si estos datos coinciden con los registros de la base de datos, el usuario podrá acceder al sistema. Retorna un JWT que es necesario para las siguientes solicitudes. Este JWT debe estar en el header Authorization de las peticiones.
Ejemplo de solicitud usando curl:
curl http://localhost:3000/profile -H "Authorization: Bearer <JWT>"Refresh Token
Parámetros de Entrada
{
"refreshToken": "<REFRESH_TOKEN>"
}El refreshToken es requerido para generar un nuevo access_token.
Descripción
Permite generar un nuevo access_token a partir de un refresh_token válido. El refresh_token tiene una validez mayor (7 días) en comparación con el access_token (24 horas).
Personalización
El generador utiliza plantillas que puedes personalizar según tus necesidades. Simplemente edita los archivos en el directorio de plantillas y vuelve a ejecutar el generador para ver los cambios reflejados en los nuevos proyectos.
