gpt4 book ai didi

nestjs - 为什么 Post 请求中的 @Body() 不能正常工作? [Nest.js]

转载 作者:行者123 更新时间:2023-12-03 22:49:49 41 4
gpt4 key购买 nike

我开始学习 Nest.js,所以我正在学习 Academind 教程 ( link )。
当我尝试获取 body 时,我的代码没有按预期工作变量与 @Body() POST 中的装饰师要求。遵循products.controller.ts中的这部分代码

@Post()
async addProduct(@Body() body: Product) {
console.log(body);
const generatedId = this.productService.insertProduct(body.title, body.description, 5.99);
return generatedId;
}
在终端中,输出只是一个空对象: {}我已经搜索了其他示例以了解如何正确执行此操作。我找到了 a tutorial in DigitalOcean他们也使用 @Body在 POST 请求中;他们离开教程结束 a repo with the example .这个例子既不适合我。
我只是在 addBook() 做了一个小改动功能在 book.service.ts退回新书而不是所有书的文件
addBook(book): Promise<any> {
return new Promise(resolve => {
this.books.push(book);
// resolve(this.books);
resolve(book);
});
}
我从 Postman 执行以下 POST 请求,但响应是一个空对象。
POST request from Postman
除了 POST 请求之外,所有其他 HTTP 请求都运行良好。
任何想法代码可能有什么问题?提前致谢。 😃

最佳答案

您正在发送 form-data默认情况下,NestJS 没有正确解析。您可以使用 application/x-www-url-form-encodedapplication/json随着raw postman 中的选项。 JSON 正文如下所示:

{
"id": "7",
"title": "Whatever Title",
"desscription": "whats doc",
"author": "Me"
}

然后您的服务器将正确识别 body 。另一种选择是添加一个正确解析表单数据的正文解析器。有几个选项,比如 multer , form-parser , formidable , 和别的。

关于nestjs - 为什么 Post 请求中的 @Body() 不能正常工作? [Nest.js],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61086951/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com