从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.params
和req.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