Crear y ejecutar un proyecto NestJS
¿Qué es NestJS?
NestJS es un framework para construir aplicaciones del lado del servidor Node.js eficientes y escalables. Está escrito en TypeScript e inspirado en Angular, utilizando una arquitectura modular y un modelo de inyección de dependencias (DI). NestJS ofrece herramientas y características poderosas que facilitan a los desarrolladores construir aplicaciones complejas.
Principales características y ventajas de NestJS
- Arquitectura modular: Organiza el código mediante módulos, lo que hace que la aplicación sea más estructurada y mantenible.
- Inyección de dependencias: Proporciona un sistema de inyección de dependencias robusto, mejorando la testabilidad y mantenibilidad del código.
- Uso de TypeScript: Aprovecha la verificación estática de tipos y las características modernas de JavaScript, mejorando la eficiencia de desarrollo y la calidad del código.
- Decoradores enriquecidos: Utiliza decoradores para definir controladores, servicios, módulos, etc., lo que hace que el código sea más conciso e intuitivo.
- Ecosistema robusto: NestJS cuenta con el apoyo de numerosos módulos y complementos de terceros, lo que facilita el desarrollo.
Utilizar NestJS puede ayudar a los desarrolladores a construir rápidamente aplicaciones web y APIs de alto rendimiento.
Crear y ejecutar un proyecto NestJS con ServBay
En este artículo, usaremos el entorno Node.js proporcionado por ServBay para crear y ejecutar un proyecto NestJS. Utilizaremos la función "Host" de ServBay para configurar el servidor web y acceder al proyecto a través de un proxy inverso.
Crear un proyecto NestJS
Inicializar el proyecto
Primero, asegúrese de haber instalado el entorno Node.js proporcionado por ServBay. Luego, use el siguiente comando para instalar globalmente el CLI de NestJS:
bashnpm install -g @nestjs/cli
1Cree un nuevo proyecto NestJS en el directorio raíz del sitio recomendado por ServBay
/Applications/ServBay/www
:bashcd /Applications/ServBay/www nest new servbay-nest-app
1
2Siga las instrucciones para ingresar el nombre del proyecto (se recomienda
servbay-nest-app
) y seleccione otras opciones según sea necesario.Instalar dependencias
Ingrese al directorio del proyecto e instale las dependencias:
bashcd servbay-nest-app npm install
1
2
Modificar el contenido del proyecto NestJS
Modificar el archivo
src/app.controller.ts
Abra el archivo
src/app.controller.ts
y modifique el contenido para que la página web muestre "Hello ServBay!":typescriptimport { Controller, Get } from '@nestjs/common'; @Controller() export class AppController { @Get() getHello(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
Entrar en modo desarrollo
Ejecutar el servidor de desarrollo
Inicie el servidor de desarrollo y especifique el puerto (por ejemplo: 8585):
bashPORT=8585 npm run start
1Esto iniciará un servidor de desarrollo local y abrirá el puerto 8585.
Configurar el proxy inverso del host de ServBay
Use la función "Host" de ServBay para acceder al servidor de desarrollo a través de un proxy inverso. En la configuración del "Host" de ServBay, agregue un nuevo proxy inverso:
- Nombre:
My first NestJS dev site
- Dominio:
servbay-nest-test.dev
- Tipo de host:
Proxy inverso
- IP:
127.0.0.1
- Puerto:
8585
Consulte los pasos detallados en agregar un sitio de desarrollo Nodejs.
- Nombre:
Acceso en modo desarrollo
Abra el navegador y visite
https://servbay-nest-test.dev
para ver el proyecto en tiempo real. Dado que ServBay admite nombres de dominio personalizados y certificados SSL gratuitos, disfrutará de una mayor seguridad.
Desplegar la versión de producción
Preparar el entorno de producción
Asegúrese de que su proyecto funcione correctamente en el entorno de producción. Generalmente, los proyectos NestJS no requieren pasos de construcción especiales, pero es posible que deba configurar algunas variables de entorno u otras configuraciones.
Ejecutar el servidor de producción
Inicie el servidor de producción y especifique el puerto (por ejemplo: 8586):
bashPORT=8586 NODE_ENV=production npm run start:prod
1Configurar el proxy inverso del host de ServBay
Use la función "Host" de ServBay para acceder al servidor de producción a través de un proxy inverso. En la configuración del "Host" de ServBay, agregue un nuevo proxy inverso:
- Nombre:
My first NestJS production site
- Dominio:
servbay-nest-test.prod
- Tipo de host:
Proxy inverso
- IP:
127.0.0.1
- Puerto:
8586
- Nombre:
Acceso en modo producción
Abra el navegador y visite
https://servbay-nest-test.prod
para ver la versión de producción. Con los dominios personalizados de ServBay y los certificados SSL gratuitos, su sitio web gozará de mayor seguridad y credibilidad.
Conexión a la base de datos
ServBay proporciona soporte para bases de datos Redis, MariaDB, PostgreSQL y MongoDB. A continuación se muestra un ejemplo de cómo conectar estas bases de datos.
Conectar a MongoDB
Instale
@nestjs/mongoose
ymongoose
:bashnpm install @nestjs/mongoose mongoose
1Luego, ingrese y conecte en el proyecto:
typescriptimport { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ MongooseModule.forRoot('mongodb://localhost/servbay-nest-app'), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13Conectar a Redis
Instale
@nestjs/redis
yredis
:bashnpm install @nestjs/redis redis
1Luego, ingrese y conecte en el proyecto:
typescriptimport { Module } from '@nestjs/common'; import { RedisModule } from '@nestjs/redis'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ RedisModule.forRoot({ url: 'redis://localhost:6379', }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Conectar a MariaDB
Instale
@nestjs/typeorm
ymysql2
:bashnpm install @nestjs/typeorm mysql2
1Luego, ingrese y conecte en el proyecto:
typescriptimport { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'mariadb', host: 'localhost', port: 3306, username: 'root', password: 'password', database: 'servbay_nest_app', entities: [], synchronize: true, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Conectar a PostgreSQL
Instale
@nestjs/typeorm
ypg
:bashnpm install @nestjs/typeorm pg
1Luego, ingrese y conecte en el proyecto:
typescriptimport { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'postgres', host: 'localhost', port: 5432, username: 'user', password: 'password', database: 'servbay_nest_app', entities: [], synchronize: true, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Siguiendo estos pasos, ha creado y ejecutado con éxito un proyecto NestJS y ha utilizado las funciones proporcionadas por ServBay para gestionar y acceder a su proyecto, además de conectar varias bases de datos.