Nodes.js发布参数

时间:2015-08-02 12:16:43

标签: node.js http

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)此外有没有办法获得所有参数而不命名它们?是为了获取/发布请求?

1 个答案:

答案 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