NestJS Logo
ads via Carbon Design and Development tips in your inbox. Every weekday. ads via Carbon
ads via Carbon Design and Development tips in your inbox. Every weekday. ads via Carbon
ads via Carbon Design and Development tips in your inbox. Every weekday. ads via Carbon

Adaptateur HTTP

Il peut arriver que vous souhaitiez accéder au serveur HTTP sous-jacent, soit dans le contexte de l'application Nest, soit depuis l'extérieur.

Chaque instance de serveur/bibliothèque HTTP natif (spécifique à une plate-forme) (par exemple, Express et Fastify) est enveloppée dans un adaptateur. L'adaptateur est enregistré comme un fournisseur globalement disponible qui peut être récupéré dans le contexte de l'application, ainsi qu'injecté dans d'autres fournisseurs.

Stratégie externe au contexte de l'application#

Pour obtenir une référence au HttpAdapter en dehors du contexte de l'application, appelez la méthode getHttpAdapter().

JS TS

const app = await NestFactory.create(AppModule);
const httpAdapter = app.getHttpAdapter();

En tant qu'injectable#

Pour obtenir une référence au HttpAdapterHost depuis le contexte de l'application, injectez-le en utilisant la même technique que n'importe quel autre fournisseur existant (par exemple, en utilisant l'injection de constructeur).

JS TS

export class CatsService {
  constructor(private adapterHost: HttpAdapterHost) {}
}

@Dependencies(HttpAdapterHost)
export class CatsService {
  constructor(adapterHost) {
    this.adapterHost = adapterHost;
  }
}
AstuceHttpAdapterHost est importé du paquet @nestjs/core.

Le HttpAdapterHost n'est pas un véritable HttpAdapter. Pour obtenir l'instance réelle de HttpAdapter, il suffit d'accéder à la propriété httpAdapter.


const adapterHost = app.get(HttpAdapterHost);
const httpAdapter = adapterHost.httpAdapter;

Le httpAdapter est l'instance réelle de l'adaptateur HTTP utilisé par le framework sous-jacent. C'est une instance de ExpressAdapter ou de FastifyAdapter (les deux classes étendent AbstractHttpAdapter).

L'objet adaptateur expose plusieurs méthodes utiles pour interagir avec le serveur HTTP. Cependant, si vous voulez accéder directement à l'instance de la bibliothèque (par exemple, l'instance Express), appelez la méthode getInstance().


const instance = httpAdapter.getInstance();

Événement de début d'écoute#

Pour exécuter une action lorsque le serveur commence à écouter les requêtes entrantes, vous pouvez vous abonner au flux listen$, comme illustré ci-dessous :


this.httpAdapterHost.listen$.subscribe(() =>
  console.log('HTTP server is listening'),
);

De plus, le HttpAdapterHost fournit une propriété booléenne listening qui indique si le serveur est actuellement actif et à l'écoute :


if (this.httpAdapterHost.listening) {
  console.log('HTTP server is listening');
}

Soutenez-nous

Nest est un projet open source sous licence MIT. Il peut se développer grâce au soutien de ces personnes formidables. Si vous souhaitez les rejoindre, apprenez-en plus ici.

Sponsors Principaux

Trilon LogoMarblism LogoMojam LogoAmplication Logo

Sponsors / Partenaires

Devenir un sponsor