typescript - NestJS - 如何使用@Body() 装饰器访问帖子正文?

标签 typescript express nestjs

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 正文的正确方法是什么?

最佳答案

Kamil Mysliwiec 关于 Content-Type 的评论是解决方案。

Also, keep in mind to set Content-Type request header into application/json.

关于typescript - NestJS - 如何使用@Body() 装饰器访问帖子正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50082365/

相关文章:

typescript - 当我在 vue.js 中 npm runbuild 得到错误接口(interface) 'NodeRequire' 不能同时扩展类型 'Require'

javascript - typescript 将此绑定(bind)到数组排序

node.js - 从 NodeJS 到 Amazon S3 的不完整文件复制

javascript - 如何对 node js express 应用程序进行单元测试

typescript - 如何将任何字符串选项添加到 typescript 文字字符串枚举?

javascript - TS2511 : Cannot create an instance of the abstract class 'Validator'

postgresql - sequelize 更新事务锁行

javascript - NestJS 的自定义路由装饰器

javascript - Angular websocket 无法在生产环境中与 Azure VM nginx 配合使用,但可以在本地使用

node.js - NestJs:无法执行命令:npm install --silent