Erstellen und Ausführen eines NestJS Projekts
Was ist NestJS?
NestJS ist ein Framework zum Erstellen effizienter, skalierbarer serverseitiger Node.js-Anwendungen. Es ist in TypeScript geschrieben und von Angular inspiriert, wobei es eine modulare Architektur und ein Dependency Injection (DI) Muster verwendet. NestJS bietet leistungsstarke Werkzeuge und Funktionen, die es Entwicklern erleichtern, komplexe Anwendungen zu erstellen.
Hauptmerkmale und Vorteile von NestJS
- Modulare Architektur: Organisieren Sie den Code mittels Modulen, was die Anwendung strukturierter und wartbarer macht.
- Dependency Injection: Bietet ein starkes Dependency Injection System, das die Testbarkeit und Wartbarkeit des Codes erhöht.
- Einsatz von TypeScript: Nutzt die statische Typprüfung von TypeScript sowie moderne JavaScript-Funktionen, was die Entwicklungseffizienz und Codequalität verbessert.
- Reiche Auswahl an Dekoratoren: Verwenden Sie Dekoratoren zur Definition von Controllern, Diensten, Modulen usw., wodurch der Code übersichtlicher und intuitiver wird.
- Starkes Ökosystem: NestJS verfügt über zahlreiche Drittanbieter-Module und Plug-ins, was die Entwicklung erleichtert.
Mit NestJS können Entwickler schnell leistungsfähige Webanwendungen und APIs erstellen.
Erstellen und Ausführen eines NestJS Projekts mit ServBay
In diesem Artikel werden wir die von ServBay bereitgestellte Node.js Umgebung nutzen, um ein NestJS-Projekt zu erstellen und auszuführen. Wir werden die "Host"-Funktion von ServBay verwenden, um den Web-Server einzurichten und durch Reverse Proxy Zugriff auf das Projekt zu ermöglichen.
Erstellen eines NestJS Projekts
Projekt initialisieren
Stellen Sie zunächst sicher, dass Sie die von ServBay bereitgestellte Node.js-Umgebung installiert haben. Installieren Sie dann den NestJS CLI global mit folgendem Befehl:
bashnpm install -g @nestjs/cli
1Erstellen Sie im empfohlenen Web-Stammverzeichnis von ServBay
/Applications/ServBay/www
ein neues NestJS-Projekt:bashcd /Applications/ServBay/www nest new servbay-nest-app
1
2Geben Sie den Projektnamen (empfohlen:
servbay-nest-app
) gemäß den Anweisungen ein und wählen Sie nach Bedarf weitere Optionen aus.Abhängigkeiten installieren
Wechseln Sie in das Projektverzeichnis und installieren Sie die Abhängigkeiten:
bashcd servbay-nest-app npm install
1
2
Ändern des Ausgabeinhalts des NestJS Projekts
Ändern Sie die Datei
src/app.controller.ts
Öffnen Sie die Datei
src/app.controller.ts
und ändern Sie den Inhalt, sodass die Webseite "Hello ServBay!" ausgibt: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
Entwicklungsmodus starten
Entwicklungsserver ausführen
Starten Sie den Entwicklungsserver und geben Sie den Port an (z.B. 8585):
bashPORT=8585 npm run start
1Dies wird einen lokalen Entwicklungsserver starten und den Port 8585 freigeben.
Reverse Proxy für ServBay Host konfigurieren
Verwenden Sie die "Host"-Funktion von ServBay, um durch einen Reverse Proxy auf den Entwicklungsserver zuzugreifen. Fügen Sie in den Host-Einstellungen von ServBay einen neuen Reverse Proxy hinzu:
- Name:
My first NestJS dev site
- Domain:
servbay-nest-test.dev
- Host Typ:
Reverse Proxy
- IP:
127.0.0.1
- Port:
8585
Für detaillierte Anweisungen siehe Hinzufügen einer Nodejs-Entwicklungswebsite.
- Name:
Entwicklungsmodus aufsuchen
Öffnen Sie den Browser und besuchen Sie
https://servbay-nest-test.dev
, um das Projekt in Echtzeit zu sehen. Da ServBay benutzerdefinierte Domains und kostenlose SSL-Zertifikate unterstützt, profitieren Sie von erhöhter Sicherheit.
Produktionsversion bereitstellen
Produktionsumgebung vorbereiten
Stellen Sie sicher, dass Ihr Projekt in der Produktionsumgebung ordnungsgemäß funktioniert. Normalerweise sind bei NestJS-Projekten keine besonderen Build-Schritte erforderlich, aber möglicherweise müssen Sie einige Umgebungsvariablen festlegen oder andere Konfigurationen vornehmen.
Produktionsserver ausführen
Starten Sie den Produktionsserver und geben Sie den Port an (z.B. 8586):
bashPORT=8586 NODE_ENV=production npm run start:prod
1Reverse Proxy für ServBay Host konfigurieren
Verwenden Sie die "Host"-Funktion von ServBay, um durch einen Reverse Proxy auf den Produktionsserver zuzugreifen. Fügen Sie in den Host-Einstellungen von ServBay einen neuen Reverse Proxy hinzu:
- Name:
My first NestJS production site
- Domain:
servbay-nest-test.prod
- Host Typ:
Reverse Proxy
- IP:
127.0.0.1
- Port:
8586
- Name:
Produktionsmodus aufsuchen
Öffnen Sie den Browser und besuchen Sie
https://servbay-nest-test.prod
, um die Produktionsversion zu sehen. Durch die benutzerdefinierten Domains und kostenlosen SSL-Zertifikate von ServBay wird Ihre Website sicherer und vertrauenswürdiger.
Datenbankverbindung
ServBay bietet Unterstützung für Redis, MariaDB, PostgreSQL und MongoDB-Datenbanken. Hier sind einige Beispiele, wie Sie diese Datenbanken verbinden können.
Verbindung zu MongoDB
Installieren Sie
@nestjs/mongoose
undmongoose
:bashnpm install @nestjs/mongoose mongoose
1Binden Sie es dann in das Projekt ein und stellen Sie die Verbindung her:
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
13Verbindung zu Redis
Installieren Sie
@nestjs/redis
undredis
:bashnpm install @nestjs/redis redis
1Binden Sie es dann in das Projekt ein und stellen Sie die Verbindung her:
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
15Verbindung zu MariaDB
Installieren Sie
@nestjs/typeorm
undmysql2
:bashnpm install @nestjs/typeorm mysql2
1Binden Sie es dann in das Projekt ein und stellen Sie die Verbindung her:
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
22Verbindung zu PostgreSQL
Installieren Sie
@nestjs/typeorm
undpg
:bashnpm install @nestjs/typeorm pg
1Binden Sie es dann in das Projekt ein und stellen Sie die Verbindung her:
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
Mit den oben genannten Schritten haben Sie erfolgreich ein NestJS-Projekt erstellt und ausgeführt, die von ServBay bereitgestellten Funktionen verwendet und mehrere Datenbanken verbunden.