使用表單時,存取 Express 中的 POST 表單欄位可能是個簡單的流程。然而,Express 版本中的細微變化在方法上引入了一些變化。
從 Express 4.16.0 開始,透過引入簡化了存取 POST 表單欄位express.json() 和express.urlencoded。這些中間件函數分別解析 JSON 和 URL 編碼的主體。
要使用此方法,請安裝express:
$ npm install express
並在Express 應用程式中包含以下中間件:
app.use(express.json()); // to support JSON-encoded bodies app.use(express.urlencoded()); // to support URL-encoded bodies
這些中間件到位後,您可以使用req.body 存取POST 表單欄位object:
// assuming POST: name=foo&color=red <-- URL encoding // // or POST: {"name":"foo","color":"red"} <-- JSON encoding app.post('/test-page', function(req, res) { var name = req.body.name, color = req.body.color; // ... });
在 Express 4.16.0 之前,處理 POST 表單欄位涉及安裝 body-parser 套件並使用其中間件。
$ npm install --save body-parser
在您的Express 申請中,包含以下內容lines:
var bodyParser = require('body-parser') app.use( bodyParser.json() ); // to support JSON-encoded bodies app.use(bodyParser.urlencoded({ // to support URL-encoded bodies extended: true }));
使用此配置,存取POST 表單欄位類似於Express 4.16.0 中的方法:
app.post('/test-page', function(req, res) { var name = req.body.name, color = req.body.color; // ... });
注意:express.bodyParser()的使用是不推薦,相當於express.json()、express.urlencoded()、express.multipart()的組合使用。除非您特別需要多部分編碼支持,否則請避免使用express.bodyParser(),這會帶來安全問題。多部分編碼,請參閱 Express 文件。
以上是如何存取 Express.js 中的 POST 表單欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!