Node.js NodeJS req.body始终为空
My server.js代码: 关于controller.js 问题 req.body总是返回Node.js NodeJS req.body始终为空,node.js,express,postman,body-parser,Node.js,Express,Postman,Body Parser,My server.js代码: 关于controller.js 问题 req.body总是返回{},它是空对象,我不知道为什么 我试过的 我尝试了console.log(req),它返回了对象,但是body对象仍然是空的 客户端请求 我正在使用Postman表单数据来模拟客户请求 我找到了解决办法 我用的是Postman,我用的是表单数据而不是原始数据和json,效果很好,我还不知道为什么 您的邮递员请求不起作用的原因是您没有在应用程序中的任何位置解析表单数据。用于解析的唯一中间件是bodyPa
{}
,它是空对象,我不知道为什么
我试过的
我尝试了console.log(req)
,它返回了对象,但是body
对象仍然是空的
客户端请求
我正在使用Postman表单数据来模拟客户请求
我找到了解决办法
我用的是Postman,我用的是表单数据而不是原始数据和json,效果很好,我还不知道为什么 您的邮递员请求不起作用的原因是您没有在应用程序中的任何位置解析
表单数据。用于解析的唯一中间件是bodyParser.json()
,正如tin上所说,它解析json。例如,如果要解析x-www-form-urlencoded
,可以使用bodyParser.urlencoded()
如果您想让当前必须的工作正常进行,则需要发送JSON,而不是表单数据
无论如何,表单数据类型通常用于较大的有效负载(例如:文件)您尚未指定如何执行客户端请求。是什么,您在HTML中使用表单
?或者你用Postman测试它,或者你模拟请求?显示客户端请求,否则就不可能知道你做错了什么,你可能没有发送正确的内容类型,检查这个问题:是的,很明显,问题就在那里。您使用的中间件试图将正文负载解析为JSON,但您可能会在意外情况下发送表单数据或多部分。@IsaacCarolWeisberg您是对的,我将编辑我的问题。。我正在使用Postman@MarcosCasagrande我已经编辑了我的问题,你是对的,它被误用了。
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
res.setHeader('Access-Control-Allow-Origin', '*');
next();
});
const AboutController = require('./controllers/AboutController');
app.use('/about', AboutController);
router.post('/store', (req, res, next) => {
// GETTING REQUEST DETAILS AND INITIALIZATION
let content = req.body.content;
let company_name = req.body.company_name;
console.log(req.body);
});
module.exports = router;