Node.js NodeJS-POST-无法读取未定义的属性“x”

Node.js NodeJS-POST-无法读取未定义的属性“x”,node.js,Node.js,昨天一个下午,今天早上几个小时,我一直在思考这个问题 我更新了所有需要的软件包。 我用PostMan发送帖子,标题内容类型为:application/json,body Key=id,Value=32。请查看下面的屏幕截图 使用的代码: const express=需要“express”; const bodyParser=需要“body-parser”; const router=express.router; var-app=express; app.userouter; app.useb

昨天一个下午,今天早上几个小时,我一直在思考这个问题

我更新了所有需要的软件包。 我用PostMan发送帖子,标题内容类型为:application/json,body Key=id,Value=32。请查看下面的屏幕截图

使用的代码:

const express=需要“express”; const bodyParser=需要“body-parser”; const router=express.router; var-app=express; app.userouter; app.usebodyParser.json; app.usebodyParser.urlencoded{ 扩展:正确 }; var hostname='localhost'; var端口=3000; app.listenport、主机名、函数错误{ 如果{ http://+hostname+:+端口处的console.logServer正常; } }; 路由器。post'/test',req,res=>{ console.log+req.body.id; }; 行console.log+req.body.id中的req.body;没有定义。您收到的请求可能根本不包含任何正文。或者给定的主体无法根据其内容类型进行分析


根据您的屏幕截图,您没有发送有效的JSON。邮递员的表单数据不发送JSON。如果要发送JSON,请选择raw并首先写入JSON:{id:32}。

,因为您使用app.usebodyParser.JSON;您应该通过邮递员发送json,就像您在第二个屏幕截图上所做的那样

第二件事是在你的中间产品之前使用你的路线

你做到了:

app.use(router);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));
所以身体还没有被解析

它应该是:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(router);

一致性在nodejs中很重要

我只想说声嗨,因为帖子似乎会自动删除它。req.body未定义。请尝试打印reqHi,谢谢您的回复。它显示[object object]:我还尝试了console.log+JSON.stringifyreq.body;但是它显示未定义。console.logJSON.stringifyreq呢?谢谢您的回复。我编辑了这篇文章,添加了与我的邮递员发来的关于这个的截图。事实上,当我说id:32时,它只是键和值,因为我没有直接写id:32,但我用id完成了字段键,用32完成了字段值。谢谢,我认为这是一个好的^^它显示了相同的错误。这不是id=32,而是id:32,但是相同的错误谢谢你的回复。事实上,邮递员发送的邮件有一个错误,使用的是原始结构。事实上,第二件事是最深层次的问题。断然的。再次感谢。