从HTTP POST请求中检索JSON

我有以下function(基本上是从另一个SO问题的答案直接采取):

function makePostRequest(requestURL, postData) { request( { url: requestURL, method: "POST", json: true, body: postData }, function(error, response, body) { console.log(response); }); } 

当我用正确的requestURL调用它时,我成功地到达这条路线:

 router.post("/batchAddUsers", function(req, res) { console.log("Reached batchAddUsers"); }); 

我一直在试图检索我发送的postData无济于事。 req.paramsreq.body都是{} 。 我没有弄清楚如何引用请求中传递的包含body的对象。

我读了整个console.log(req) ,发现没有用。 我之前做过这样的事情,除了请求是由一个表单来req.body的。 现在我正在做“手动”的请求,它不再工作。 整个事情在Node.js上运行。

我究竟做错了什么?

我认为你没有插入尸体parsing器

要处理Express.js第4版及更高版本中的HTTP POST请求,您需要安装名为body-parser的中间件模块。

body-parser提取传入请求stream的整个主体部分,并将其公开在req.body上。

中间件早些时候是Express.js的一部分,但现在必须单独安装。

这个body-parser模块分析使用HTTP POST请求提交的JSON,缓冲区,string和url编码数据。 使用NPM安装body-parser,如下所示。

npm安装body-parser –save