簡體   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