Créer et exécuter un projet NestJS
Qu'est-ce que NestJS ?
NestJS est un framework permettant de construire des applications serveur Node.js efficaces et évolutives. Il est écrit en TypeScript et s'inspire d'Angular en adoptant une architecture modulaire et un modèle d'injection de dépendances (DI). NestJS offre des outils et des fonctionnalités puissants qui permettent aux développeurs de créer facilement des applications complexes.
Principales caractéristiques et avantages de NestJS
- Architecture modulaire : Organise le code par modules, rendant l'application plus structurée et maintenable.
- Injection de dépendances : Fournit un système d'injection de dépendances puissant, améliorant la testabilité et la maintenabilité du code.
- Utilisation de TypeScript : Profite de la vérification de types statiques de TypeScript et des fonctionnalités modernes de JavaScript, augmentant l'efficacité du développement et la qualité du code.
- Décorateurs riches : Utilise des décorateurs pour définir des contrôleurs, services, modules, etc., rendant le code plus concis et intuitif.
- Écosystème puissant : NestJS dispose d'un riche support pour des modules et plugins tiers, facilitant le développement.
Avec NestJS, les développeurs peuvent rapidement construire des applications Web et des API haute performance.
Créer et exécuter un projet NestJS avec ServBay
Dans cet article, nous allons créer et exécuter un projet NestJS en utilisant l'environnement Node.js fourni par ServBay. Nous utiliserons la fonctionnalité « Host » de ServBay pour configurer le serveur Web et y accéder via un proxy inverse.
Créer un projet NestJS
Initialiser le projet
Tout d'abord, assurez-vous que vous avez installé l'environnement Node.js fourni par ServBay. Ensuite, installez globalement le NestJS CLI avec la commande suivante :
bashnpm install -g @nestjs/cli
1Dans le répertoire racine recommandé par ServBay
/Applications/ServBay/www
, créez un nouveau projet NestJS :bashcd /Applications/ServBay/www nest new servbay-nest-app
1
2Suivez les instructions pour entrer le nom du projet (recommandé :
servbay-nest-app
) et sélectionnez les autres options si nécessaire.Installer les dépendances
Entrez dans le répertoire du projet et installez les dépendances :
bashcd servbay-nest-app npm install
1
2
Modifier la sortie du projet NestJS
Modifier le fichier
src/app.controller.ts
Ouvrez le fichier
src/app.controller.ts
et modifiez le contenu pour afficher "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
Passer en mode développement
Exécuter le serveur de développement
Démarrez le serveur de développement et spécifiez un port (par exemple : 8585) :
bashPORT=8585 npm run start
1Cela lancera un serveur de développement local et exposera le port 8585.
Configurer le proxy inverse avec ServBay Host
Utilisez la fonctionnalité « Host » de ServBay pour accéder au serveur de développement via un proxy inverse. Dans les paramètres « Host » de ServBay, ajoutez un nouveau proxy inverse :
- Nom :
My first NestJS dev site
- Domaine :
servbay-nest-test.dev
- Type d'hôte :
Proxy inverse
- IP :
127.0.0.1
- Port :
8585
Consultez les étapes détaillées pour ajouter un site de développement Nodejs.
- Nom :
Accéder au mode développement
Ouvrez un navigateur et accédez à
https://servbay-nest-test.dev
pour voir le projet en temps réel. Grâce au support de ServBay pour les noms de domaine personnalisés et les certificats SSL gratuits, vous bénéficierez d'une sécurité accrue.
Déployer la version de production
Préparer l'environnement de production
Assurez-vous que votre projet peut fonctionner normalement en environnement de production. En règle générale, les projets NestJS ne nécessitent pas de procédure de build particulière, mais vous pourriez avoir besoin de configurer des variables d'environnement ou d'autres paramètres.
Exécuter le serveur de production
Démarrez le serveur de production et spécifiez un port (par exemple : 8586) :
bashPORT=8586 NODE_ENV=production npm run start:prod
1Configurer le proxy inverse avec ServBay Host
Utilisez la fonctionnalité « Host » de ServBay pour accéder au serveur de production via un proxy inverse. Dans les paramètres « Host » de ServBay, ajoutez un nouveau proxy inverse :
- Nom :
My first NestJS production site
- Domaine :
servbay-nest-test.prod
- Type d'hôte :
Proxy inverse
- IP :
127.0.0.1
- Port :
8586
- Nom :
Accéder au mode production
Ouvrez un navigateur et accédez à
https://servbay-nest-test.prod
pour voir la version de production. Grâce aux noms de domaine personnalisés et aux certificats SSL gratuits de ServBay, votre site sera plus sécurisé et plus fiable.
Connexion à une base de données
ServBay fournit des supports pour les bases de données Redis, MariaDB, PostgreSQL et MongoDB. Voici des exemples de connexion à ces bases de données.
Connexion à MongoDB
Installez
@nestjs/mongoose
etmongoose
:bashnpm install @nestjs/mongoose mongoose
1Puis dans le projet, importez et connectez-vous :
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
13Connexion à Redis
Installez
@nestjs/redis
etredis
:bashnpm install @nestjs/redis redis
1Puis dans le projet, importez et connectez-vous :
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
15Connexion à MariaDB
Installez
@nestjs/typeorm
etmysql2
:bashnpm install @nestjs/typeorm mysql2
1Puis dans le projet, importez et connectez-vous :
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
22Connexion à PostgreSQL
Installez
@nestjs/typeorm
etpg
:bashnpm install @nestjs/typeorm pg
1Puis dans le projet, importez et connectez-vous :
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
En suivant ces étapes, vous avez créé et exécuté avec succès un projet NestJS, et utilisé les fonctionnalités fournies par ServBay pour gérer et accéder à votre projet tout en connectant plusieurs bases de données.