📅  最后修改于: 2023-12-03 15:14:57.396000             🧑  作者: Mango
在使用 Express.js 构建 Web 应用程序时,req.body 是请求正文的解析结果,包含 key-value 对,其中的值可以是字符串或数组形式。
这个属性在处理 POST 请求时非常有用,在 POST 请求中,请求正文包含提交数据,req.body 对象可以让我们轻松地访问这些提交的数据。
例如:我们可以通过以下方式将表单数据保存在 req.body 中并访问它们:
<form method="POST" action="/">
<input type="text" name="username">
<input type="password" name="password">
<button type="submit">提交</button>
</form>
const express = require('express')
const app = express()
// 解析请求正文中的数据
app.use(express.urlencoded({ extended: true }))
app.post('/', function(req, res) {
console.log(req.body.username)
console.log(req.body.password)
res.send('表单提交成功!')
})
app.listen(3000)
在上面的代码中,我们通过解析请求正文中的数据将表单数据保存在 req.body 中。然后在路由处理函数中使用 req.body.username 和 req.body.password 访问表单数据。
需要注意的一点是,我们需要使用中间件解析请求正文,才能在请求处理函数中访问 req.body 属性。在上面的代码中,我们通过使用 express.urlencoded() 中间件来解析请求正文中的数据。
你还可以通过使用 JSON 解析中间件来支持客户端向服务器发送 JSON 格式的数据:
const express = require('express')
const app = express()
// 解析请求正文中的数据
app.use(express.urlencoded({ extended: true }))
app.use(express.json())
app.post('/', function(req, res) {
console.log(req.body)
res.send('提交成功!')
})
app.listen(3000)
在上面的代码中,我们添加了 express.json() 中间件解析 JSON 格式的数据。在路由处理函数中,我们可以通过 req.body 访问提交的数据。
总之,req.body 属性使我们可以轻松地访问客户端提交的数据,并使我们的代码更加简洁和易于维护。