表演(Fastify)

表演(Fastify)

在引擎盖下,Nest使用Express,但如前所述,它提供了与各种其他库的兼容性,例如Fastify。它是如何工作的?事实上,Nest需要使用您喜欢的库,是兼容的适配器,主要代理相应的处理程序到适当的库特定方法。此外,您的图书馆必须提供至少类似的快递请求 - 响应周期管理。

一个Fastify适合这里非常好,因为它解决了作为快递做了类似的方式设计问题。然而,满足要快得多,实现基准测试结果差不多两倍。问题是,为什么Nest仍然使用express作为默认的HTTP提供程序呢?因为express是广泛使用的,众所周知的,并且拥有大量兼容的中间件。

但我们并没有把人锁定在一个单一的范例中。我们让他们使用他们需要的东西。当你关心真正优秀的性能时,Fastify是一个更好的选择,这就是我们提供内置FastifyAdapter有助于将这个库与Nest集成的原因。

安装

首先,我们需要安装所需的包:

$ npm i --save fastify fastify-formbody

适配器

一旦安装了fastify,我们就可以使用了FastifyAdapter

import { NestFactory, FastifyAdapter } from '@nestjs/core'; import { ApplicationModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(ApplicationModule, new FastifyAdapter() await app.listen(3000 } bootstrap(

如果您在docker容器中运行Nest实例,则需要指定主机,如下所示:

await app.listen(3000, '0.0.0.0'

就这样。此外,您可以通过FastifyAdapter构造函数将选项传递给fastify构造函数。请记住,现在,Nest使用fastify作为HTTP提供程序,这意味着,在express上传递的每个配方都将不再起作用。你应该使用fastify等效包。