Nest.js - 除了通过 ParamDecorator 之外,还有其他方法来获取请求/正文吗?

bon*_*low 5 typescript nestjs

不知何故,ParamDecorator 看起来完全不酷。还有其他方式获取正文或请求吗?例如通过函数装饰器或全局的东西?

@Post('token')
public async createToken(@Body() body: UserLogin): Promise<any> {
  return await this.authService.signIn(body);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用。

@Post('token')
@Body('body')
public async createToken(body: UserLogin): Promise<any> {
  return await this.authService.signIn(body);
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以使用请求对象访问正文

async getPostById(@Req() req, @Res() res) {
   const body = req.body;
   ...
}
Run Code Online (Sandbox Code Playgroud)

但这样你可能会问你正在使用装饰器来访问请求对象!


Jes*_*ter 2

不,如果不对函数参数本身使用装饰器,就无法提取此信息。是什么让你觉得他们“不酷”?通过将它们从函数参数移至函数,您似乎并没有获得太多收益。