0

我使用 VS Code REST 客户端扩展有这个测试请求:

PATCH http://localhost:3000/auth/3

content-type: application/json

{ "email": "new.email3@gmail.com" }

在接收端,在此端点上侦听的 NestJS 应用程序没有获取 PATCH 请求的主体,因此在负责更新请求的 NestJS 服务中没有更新。

这是 NestJS 中的控制器方法/端点:

  @Patch('/:id')
  updateUser(@Param('id') id: string, @Body() body: UpdateUserDto) {
    
    console.log('body: ', body);

    return this.usersService.update(parseInt(id), body);
  }

以及上面调试控制台日志的结果:

body:  {}

谢谢!

4

1 回答 1

0

URI 请求和请求标头之间的额外行是问题所在。必须将请求标头直接放在 URI 之后,如下所示:

PATCH http://localhost:3000/auth/3
content-type: application/json

{ "email": "new.email3@gmail.com" }

阅读 VS Code REST 客户端扩展页面上关于请求标头的部分,作者明确指出: The lines immediately after the request line to first empty line are parsed as Request Headers

然后身体按预期通过:

body:  { email: 'new.email3@gmail.com' }

希望这可以节省其他人花费我弄清楚它的时间。

于 2022-01-23T18:11:50.017 回答