Creare e Eseguire un Progetto NestJS
Cos'è NestJS?
NestJS è un framework per costruire applicazioni server-side efficaci e scalabili usando Node.js. È scritto in TypeScript e ispirato da Angular, adottando un'architettura modulare e un modello di iniezione delle dipendenze (DI). NestJS offre potenti strumenti e funzionalità che permettono agli sviluppatori di costruire facilmente applicazioni complesse.
Caratteristiche principali e vantaggi di NestJS
- Architettura modulare: Organizza il codice in moduli, rendendo l'applicazione più strutturata e manutenibile.
- Iniezione delle dipendenze: Fornisce un potente sistema di iniezione delle dipendenze, migliorando la testabilità e la manutenibilità del codice.
- Uso di TypeScript: Sfrutta il controllo dei tipi statici di TypeScript e le moderne caratteristiche di JavaScript, migliorando l'efficienza dello sviluppo e la qualità del codice.
- Decoratori ricchi: Utilizza decoratori per definire controller, servizi, moduli e altro, rendendo il codice più semplice e intuitivo.
- Ecosistema potente: NestJS dispone di un ricco supporto di moduli e plugin di terze parti, rendendo lo sviluppo più conveniente.
Usando NestJS, gli sviluppatori possono costruire rapidamente web app e API ad alte prestazioni.
Creare e Eseguire un Progetto NestJS con ServBay
In questo articolo, useremo l'ambiente Node.js fornito da ServBay per creare ed eseguire un progetto NestJS. Utilizzeremo la funzione "Host" di ServBay per configurare il server web e realizzeremo l'accesso al progetto tramite un proxy inverso.
Creazione del Progetto NestJS
Inizializzare il progetto
Prima di tutto, assicurati di aver installato l'ambiente Node.js fornito da ServBay. Poi, usa il seguente comando per installare globalmente NestJS CLI:
bashnpm install -g @nestjs/cli
1Crea un nuovo progetto NestJS nella directory radice del sito suggerita da ServBay
/Applications/ServBay/www
:bashcd /Applications/ServBay/www nest new servbay-nest-app
1
2Segui le istruzioni per inserire il nome del progetto (si consiglia di chiamarlo
servbay-nest-app
) e scegliere altre opzioni se necessario.Installare le dipendenze
Entra nella directory del progetto e installa le dipendenze:
bashcd servbay-nest-app npm install
1
2
Modifica del Contenuto di Output del Progetto NestJS
Modificare il file
src/app.controller.ts
Apri il file
src/app.controller.ts
e modifica il contenuto per fare in modo che la pagina web visualizzi "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
Entrare in Modalità di Sviluppo
Eseguire il server di sviluppo
Avvia il server di sviluppo e specifica la porta (ad esempio: 8585):
bashPORT=8585 npm run start
1Questo avvierà un server di sviluppo localmente e esporrà la porta 8585.
Configurare il proxy inverso dell'host di ServBay
Usa la funzione "Host" di ServBay per accedere al server di sviluppo tramite un proxy inverso. Nelle impostazioni dell'host di ServBay, aggiungi un nuovo proxy inverso:
- Nome:
My first NestJS dev site
- Dominio:
servbay-nest-test.dev
- Tipo di host:
proxy inverso
- IP:
127.0.0.1
- Porta:
8585
Per i dettagli sui passaggi di configurazione, consulta aggiungere un sito web di sviluppo Nodejs.
- Nome:
Accedere alla modalità di sviluppo
Apri il browser e visita
https://servbay-nest-test.dev
per vedere il progetto in tempo reale. Poiché ServBay supporta domain personalizzati e certificati SSL gratuiti, godrai di maggiore sicurezza.
Distribuzione della Versione di Produzione
Preparare l'ambiente di produzione
Assicurati che il progetto funzioni correttamente nell'ambiente di produzione. Solitamente, i progetti NestJS non richiedono particolari passaggi di build, ma potrebbe essere necessario impostare alcune variabili di ambiente o effettuare altre configurazioni.
Eseguire il server di produzione
Avvia il server di produzione e specifica la porta (ad esempio: 8586):
bashPORT=8586 NODE_ENV=production npm run start:prod
1Configurare il proxy inverso dell'host di ServBay
Usa la funzione "Host" di ServBay per accedere al server di produzione tramite un proxy inverso. Nelle impostazioni dell'host di ServBay, aggiungi un nuovo proxy inverso:
- Nome:
My first NestJS production site
- Dominio:
servbay-nest-test.prod
- Tipo di host:
proxy inverso
- IP:
127.0.0.1
- Porta:
8586
- Nome:
Accedere alla modalità di produzione
Apri il browser e visita
https://servbay-nest-test.prod
per vedere la versione di produzione. Grazie ai domain personalizzati e ai certificati SSL gratuiti di ServBay, il tuo sito sarà più sicuro e affidabile.
Connessione al Database
ServBay offre supporto per database come Redis, MariaDB, PostgreSQL e MongoDB. Ecco un esempio di come connettersi a questi database.
Connessione a MongoDB
Installa
@nestjs/mongoose
emongoose
:bashnpm install @nestjs/mongoose mongoose
1Poi importa e connettiti nel progetto:
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
13Connessione a Redis
Installa
@nestjs/redis
eredis
:bashnpm install @nestjs/redis redis
1Poi importa e connettiti nel progetto:
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
15Connessione a MariaDB
Installa
@nestjs/typeorm
emysql2
:bashnpm install @nestjs/typeorm mysql2
1Poi importa e connettiti nel progetto:
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
22Connessione a PostgreSQL
Installa
@nestjs/typeorm
epg
:bashnpm install @nestjs/typeorm pg
1Poi importa e connettiti nel progetto:
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
Seguendo questi passaggi, hai creato ed eseguito con successo un progetto NestJS, utilizzando le funzionalità offerte da ServBay per gestire e accedere al tuo progetto, oltre a connetterti a vari database.