首頁 >web前端 >js教程 >如何存取 Express.js 中的 POST 表單欄位?

如何存取 Express.js 中的 POST 表單欄位?

DDD
DDD原創
2024-12-10 05:17:09200瀏覽

How Do I Access POST Form Fields in Express.js?

存取 Express 中的 POST 表單欄位:指南

使用表單時,存取 Express 中的 POST 表單欄位可能是個簡單的流程。然而,Express 版本中的細微變化在方法上引入了一些變化。

Express 4.16.0 及更高版本

從 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&amp;color=red            <-- URL encoding
//
// or       POST: {&quot;name&quot;:&quot;foo&quot;,&quot;color&quot;:&quot;red&quot;}  <-- JSON encoding

app.post('/test-page', function(req, res) {
    var name = req.body.name,
        color = req.body.color;
    // ...
});

Express 4.0 到 4.15

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn