无法将params发送(并解析)到express.js中的app.post()

时间:2014-11-29 19:16:08

标签: node.js post express

我检查了这个question,但由于某些原因,给出的解决方案对我不起作用。在我的express.js中,我有:

...

bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({
   extended: true
}));
app.use(bodyParser.json());
...

使用POSTman运行测试

enter image description here

app.post('/upload', function(req, res) {
   console.log(req.body) // undefined
   console.log(req.params) // undefined
})

结果:

enter image description here

所以身体和身体都是参数是空的。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您提供的链接中的解决方案不起作用的原因是因为body-parser的该版本已过期且不再包含form-data解析(并且它曾经与之捆绑在一起)表达)。

话虽如此,根据您的屏幕截图,您似乎正在向服务器发送类型为multipart/form-data的数据(您可以在请求标头中进行检查),而您的代码示例仅显示处理{的中间件{1}}和urlencoded数据类型。

您需要添加处理该数据类型的中间件。最新的身体解析器说(https://github.com/expressjs/body-parser):

  

由于它们复杂而且不能处理多部分主体   通常是大自然。对于多部分机构,您可能感兴趣   以下模块:

     

请查看以上解析器之一。我使用json,效果很好。