Criando e Executando Projeto NestJS
O que é NestJS?
NestJS é um framework para construir aplicativos de servidor Node.js eficientes e escaláveis. Ele é escrito em TypeScript e inspirado no Angular, adotando uma arquitetura modular e um padrão de injeção de dependência (DI). O NestJS fornece ferramentas e recursos poderosos que permitem aos desenvolvedores construir aplicativos complexos facilmente.
Principais características e vantagens do NestJS
- Arquitetura modular: Organiza o código através de módulos, tornando o aplicativo mais estruturado e fácil de manter.
- Injeção de dependência: Oferece um sistema de injeção de dependência robusto que melhora a testabilidade e a manutenção do código.
- Uso de TypeScript: Aproveita a verificação estática de tipos do TypeScript e os recursos modernos do JavaScript para aumentar a eficiência de desenvolvimento e a qualidade do código.
- Decoradores abundantes: Usa decoradores para definir controladores, serviços, módulos, etc., tornando o código mais conciso e intuitivo.
- Ecossistema poderoso: O NestJS possui suporte para vários módulos e plugins de terceiros, facilitando o desenvolvimento.
Usar o NestJS pode ajudar desenvolvedores a construir rapidamente aplicações web e APIs de alto desempenho.
Criando e Executando Projeto NestJS pelo ServBay
Neste artigo, usaremos o ambiente Node.js fornecido pelo ServBay para criar e executar um projeto NestJS. Utilizaremos a funcionalidade 'Host' do ServBay para configurar o servidor web e acessar o projeto por meio de um proxy reverso.
Criando Projeto NestJS
Inicializando o Projeto
Primeiro, certifique-se de que você já instalou o ambiente Node.js fornecido pelo ServBay. Em seguida, use o comando abaixo para instalar globalmente o CLI do NestJS:
bashnpm install -g @nestjs/cli
1No diretório raiz recomendado pelo ServBay
/Applications/ServBay/www
, crie um novo projeto NestJS:bashcd /Applications/ServBay/www nest new servbay-nest-app
1
2Siga as instruções inserindo o nome do projeto (recomendado
servbay-nest-app
) e escolha outras opções conforme necessário.Instalando Dependências
Entre no diretório do projeto e instale as dependências:
bashcd servbay-nest-app npm install
1
2
Modificando o Conteúdo de Saída do Projeto NestJS
Modificando o Arquivo
src/app.controller.ts
Abra o arquivo
src/app.controller.ts
, e modifique o conteúdo para que a página web exiba "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
Entrando em Modo de Desenvolvimento
Executando o Servidor de Desenvolvimento
Inicie o servidor de desenvolvimento e especifique a porta (por exemplo: 8585):
bashPORT=8585 npm run start
1Isso iniciará um servidor de desenvolvimento local, exibindo na porta 8585.
Configurando Proxy Reverso de Host do ServBay
Use a funcionalidade 'Host' do ServBay para acessar o servidor de desenvolvimento via proxy reverso. Nas configurações de 'Host' do ServBay, adicione um novo proxy reverso:
- Nome:
My first NestJS dev site
- Domínio:
servbay-nest-test.dev
- Tipo de Host:
Proxy reverso
- IP:
127.0.0.1
- Porta:
8585
Para detalhes de configuração, consulte adicionando um site de desenvolvimento Nodejs.
- Nome:
Acessando o Modo de Desenvolvimento
Abra o navegador e acesse
https://servbay-nest-test.dev
para visualizar o projeto em tempo real. Como o ServBay oferece domínios personalizados e certificados SSL gratuitos, você desfrutará de maior segurança.
Implantando Versão de Produção
Preparando o Ambiente de Produção
Certifique-se de que seu projeto funciona normalmente no ambiente de produção. Normalmente, projetos NestJS não necessitam de etapas específicas de construção, mas você pode precisar configurar variáveis de ambiente ou outras configurações.
Executando o Servidor de Produção
Inicie o servidor de produção e especifique a porta (por exemplo: 8586):
bashPORT=8586 NODE_ENV=production npm run start:prod
1Configurando Proxy Reverso de Host do ServBay
Utilize a funcionalidade 'Host' do ServBay para acessar o servidor de produção via proxy reverso. Nas configurações de 'Host' do ServBay, adicione um novo proxy reverso:
- Nome:
My first NestJS production site
- Domínio:
servbay-nest-test.prod
- Tipo de Host:
Proxy reverso
- IP:
127.0.0.1
- Porta:
8586
- Nome:
Acessando o Modo de Produção
Abra o navegador e acesse
https://servbay-nest-test.prod
para visualizar a versão de produção. Com os domínios personalizados e certificados SSL gratuitos do ServBay, seu site terá maior segurança e credibilidade.
Conexão ao Banco de Dados
O ServBay suporta bancos de dados Redis, MariaDB, PostgreSQL e MongoDB. Veja como conectar esses bancos de dados.
Conectando ao MongoDB
Instale
@nestjs/mongoose
emongoose
:bashnpm install @nestjs/mongoose mongoose
1Em seguida, importe e conecte no projeto:
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
13Conectando ao Redis
Instale
@nestjs/redis
eredis
:bashnpm install @nestjs/redis redis
1Em seguida, importe e conecte no projeto:
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
15Conectando ao MariaDB
Instale
@nestjs/typeorm
emysql2
:bashnpm install @nestjs/typeorm mysql2
1Em seguida, importe e conecte no projeto:
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
22Conectando ao PostgreSQL
Instale
@nestjs/typeorm
epg
:bashnpm install @nestjs/typeorm pg
1Em seguida, importe e conecte no projeto:
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
Seguindo esses passos, você terá criado e executado com sucesso um projeto NestJS, utilizando os recursos fornecidos pelo ServBay para gerenciar e acessar seu projeto, bem como conectar-se a múltiplos bancos de dados.