如何在 Nest 6 中注入 HTTP 服务器?

Nik*_*igi 1 javascript dependency-injection node.js typescript nestjs

我正在正确地从 Nest 6 升级项目,但我不知道如何将当前使用的 HTTP 服务器实例注入到一个类中。

以前,我一直在使用HTTP_SERVER_REFfrom@nestjs/core像这样:

@Inject(HTTP_SERVER_REF) private readonly httpServer: HttpServer
Run Code Online (Sandbox Code Playgroud)

这个常数似乎不再存在了。我有一些猴子补丁解决方案可以让我访问 HTTP 服务器,但我想知道:是否有一种新的、正确的方法来注入 HTTP 服务器?@nestjs/platform-express顺便说一下,我正在使用默认包。

Kim*_*ern 5

您可以HttpAdapterHost改为注入,请参阅文档

export class CatsService {
  constructor(private readonly adapterHost: HttpAdapterHost) {}
}
Run Code Online (Sandbox Code Playgroud)

然后你可以通过这个属性访问 http 适配器:

const httpAdapter = this.adapterHost.httpAdapter;
Run Code Online (Sandbox Code Playgroud)

您可以获得的库实例:

const instance = httpAdapter.getInstance();
Run Code Online (Sandbox Code Playgroud)