如何使用Express處理表單

以下是一個HTML表單的示例:

<form method="POST" action="/submit-form">
 <input type="text" name="username" />
 <input type="submit" />
</form>

當用戶按下提交按鈕時,瀏覽器會自動發送一個POST請求到頁面所在的同源/submit-form URL。瀏覽器會將數據編碼為application/x-www-form-urlencoded格式發送。在這個例子中,表單數據包含了username輸入字段的值。

表單也可以使用GET方法發送數據,但是大多數情況下你會希望使用POST

表單數據將會在POST請求的請求體中發送。

為了提取這些數據,你需要使用express.urlencoded()中間件:

const express = require('express')
const app = express()

app.use(express.urlencoded({
 extended: true
}))

現在,你需要在/submit-form路徑上創建一個POST終點,任何數據都將在request.body上可用:

app.post('/submit-form', (req, res) => {
 const username = req.body.username
 //...
 res.end()
})

在使用數據之前,別忘了對數據進行驗證,你可以使用express-validator來實現。