import { Controller, Post, Body } from '@nestjs/common';
import { MyService } from 'my.service';
import { MyDto } from './dto/my.dto';
@Controller('my-route')
export class MyController {
constructor(private readonly _myService: MyService) {}
@Post()
async myMethod(@Body() myDto: MyDto) {
console.log(myDto); // undefined
return await this._myService.doStuff(myDto.elementOfInterest); // Passes undefined variable into method.
}
}
我对从 Nest 中的 POST 访问正文表单数据的正确方法感到困惑。文档和示例都显示了@Body()
在参数名称之前使用装饰器的简单用法,该参数名称将包含主体(如果使用参数,则为主体中的特定元素)。然而,在我上面的示例中,主体永远不会被填充,并且该方法myDto
在未定义的情况下被调用。即使将其类型更改为字符串并在我的 POST 正文中简单地传递一个键/值对,它也会未定义。
在 Nest 中处理 POST 正文的正确方法是什么?