繁体   English   中英

如何在Express.js中迭代POST请求的主体?

[英]How to iterate over body of POST request in Express.js?

我正在为NodeJS中的POST请求构建一个通用路由处理程序。

我需要迭代POST请求的req.params ,而不事先知道参数是什么。

我试过以下没有成功:

console.log("checking param keys...")
Object.keys(req.param).forEach(function(key){
console.log(key +"is " + req.params(key) )
})

当我运行此代码时,只打印“检查参数键...”。

谁知道怎么做?

我想你问的是如何从一个url编码的POST请求体中迭代表单帖子,所以它是bodyParser()中间件,它完成了你的技巧。

req.params是一个数组,包含由路由定义的express app映射的属性。 查看req.params的详细信息,而不是请求正文。 以下面的代码为例:

var app = require("express")();

app.use(express.bodyParser());
app.post("/form/:name", function(req, res) {
   console.log(req.params);
   console.log(req.body);
   console.log(req.query);
   res.send("ok");
});

然后像这样测试:

$ curl -X POST --data 'foo=bar' http://localhost:3000/form/form1?url=/abc

您将看到如下控制台输出:

[ name: 'form1' ]
{ foo: 'bar' }
{ url: '/abc' }

因此req.body是访问请求体的正确方法, req.query是所有HTTP方法的读取查询字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM