1)为什么当我尝试从node.js中的post请求中获取参数时 我得到了正确的价值。
app.post('/users', function(req, res) {
console.log(">>> " + req.param('name')); ' works but with warnings
res.send("ok");
});
上面的示例输出了一个警告:" param"函数已弃用,我应该使用params.name。使用params.name实际上不起作用,导致" undefined",与body.name相同。
当我使用
时也会发生这种情况router.post('/',function(req, res, next) {
console.log("result > " + req.params.name); ' result is "undefined"
res.send(req.body);
});
我已经包含了json支持的bodyparser。
我错过了什么或者我究竟做错了什么?
2)此外有没有办法获得所有参数而不命名它们?是为了获取/发布请求?
答案 0 :(得分:2)
一次又一次地尝试后我找到了它:
post请求可能不是多部分编码的 - 所以如果 ENCTYPE ="多部分/格式数据"设置,删除或更改为" application / x-www-form-urlencoded"
删除enctype后,我试图用
获取数据var result = req.body.name
有效。
您要使用的多部分编码帖子" multer"我猜!
修改
我刚刚发现
req.params.name
仅适用于网址部分,例如
http://host:port/application/name
并且文档清楚地表明在快递4.x中你可以使用 "使用多部分处理中间件,如busboy,multer,强大,多方,连接多方或pez。" (http://expressjs.com/api.html#router.route)