无论如何在 Nest.js 中使用 Fastify 获取请求、响应的类型接口

Posted

技术标签:

【中文标题】无论如何在 Nest.js 中使用 Fastify 获取请求、响应的类型接口【英文标题】:Is there anyway to get types interfaces for request, response in Nest.js with Fastify 【发布时间】:2020-02-24 23:42:50 【问题描述】:

我正在学习 Nest.js,在开始编写文档时,我读到我不仅可以将它与 express 一起使用,还可以与 fastify 一起使用,所以我设置了我的第一个fastify 的项目,然后我开始阅读有关控制器的信息,但发现了一个问题。例如,如果我想获取有关用户请求的更多信息,我可以稍微使用@Req req: Reguest,并且这个 reqRequest 的类型,并且很容易从基于express的应用程序,你只需要安装@types/express然后你可以从express导入Request接口,但是如何(如果可能的话)使用fastify可以获得Request接口吗?

【问题讨论】:

【参考方案1】:

应该有来自@types/fastify 的类型可以安装。我相信 Fastify 使用 RequestReply 作为请求和响应。

【讨论】:

不,没有任何:/但实际上我找到了解决方案。 Fastify 提供了与@types/node 的接口,你可以从'fastify' 导入它们,例如 DefaultQuery。因此,如果您已经安装了@types/node(对于嵌套它们已经在项目中,所以您不必),您可以轻松访问它们。在这里我找到了我的解决方案fastifyTypes 不知道express是否支持这种接口?【参考方案2】:

所以我确定 fasify 的类型已经在 Nest 项目中,因为它们来自 @types/node。如果你想使用 fastify 的接口,只需从 fastify 模块导入它们。 示例:

import  Controller, Get, Query, Req  from '@nestjs/common';
import  AppService  from './app.service';
import  DefaultQuery  from 'fastify';

@Controller('math')
export class AppController 
  constructor(private readonly appService: AppService) 

  @Get('add')
  addTwoNumbers(@Query() query: DefaultQuery): number 
    return this.appService.addTwoNumbers(query.value);
  

如果您想了解更多关于 fastify 中的类型的信息,请访问此链接:Fastify Types

【讨论】:

以上是关于无论如何在 Nest.js 中使用 Fastify 获取请求、响应的类型接口的主要内容,如果未能解决你的问题,请参考以下文章

带有 NEST.JS 的 newrelic/apollo-server-plugin

Nest js 是不是以 express js 为核心实现了几乎两倍的基准测试结果。?或者只是为了实现它

如何在 Nest.js 中提供静态 HTML 文件?

如何在 Nest.JS 中使用多个 Secret 实现多个 JWT 策略

如何在没有守卫装饰器的情况下始终验证 JWT? (Nest.js + 护照)

如何在 Nest.js 中参考打字稿源打印堆栈跟踪