Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodes.js post参数_Node.js_Http - Fatal编程技术网

Node.js Nodes.js post参数

Node.js Nodes.js post参数,node.js,http,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实际上不起作

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实际上不起作用,并导致“未定义”,与body.name相同

当我使用

router.post('/',function(req, res, next) {

  console.log("result > " + req.params.name); ' result is "undefined"
  res.send(req.body);
});
我已经包括了支持json的bodyparser

我是否遗漏了什么,或者我到底做错了什么


2) 此外,有没有一种方法可以在不命名的情况下获取所有参数?这两种方法都适用于get/post请求?

在反复尝试后,我发现:

post请求可能不是多部分编码的-因此如果 enctype=“多部分/表单数据”已设置,请将其删除或更改为“应用程序/x-www-form-urlencoded”

删除enctype后,我尝试使用

var result = req.body.name
这起作用了

对于多部分编码的帖子,我想你必须使用“multer”

编辑

我刚发现

req.params.name
仅适用于URL部分,例如

文档中明确指出,在Express4.x中,您必须使用
“使用多部分处理中间件,如busboy、multer、Foremble、multiparty、connect multiparty或pez。”()

您是否尝试过使用urlencoded的body解析器?i、 e.
app.use(bodyParser.urlencoded({extended:true}))
?是的,我尝试过,可惜没有成功!