推荐答案
// www.javascriptcn.com code example
const express = require('express');
const app = express();
// 使用 express.json() 中间件解析 JSON 请求体
app.use(express.json());
app.post('/data', (req, res) => {
// 访问解析后的 JSON 数据
const data = req.body;
res.json({ received: data });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});本题详细解读
1. 什么是 express.json() 中间件?
express.json() 是 Express 框架提供的一个内置中间件,用于解析传入请求中的 JSON 格式的请求体。它会将请求体中的 JSON 数据解析为 JavaScript 对象,并将其挂载到 req.body 上,方便后续处理。
2. 如何使用 express.json() 中间件?
在使用 express.json() 中间件时,通常会在 Express 应用的顶层通过 app.use() 方法进行全局注册。这样,所有的请求都会经过这个中间件,如果请求体是 JSON 格式,它会被自动解析。
app.use(express.json());
3. 解析后的数据如何访问?
一旦使用了 express.json() 中间件,解析后的 JSON 数据会存储在 req.body 中。你可以在路由处理函数中通过 req.body 访问这些数据。
app.post('/data', (req, res) => {
const data = req.body;
res.json({ received: data });
});4. 注意事项
express.json()中间件只会解析Content-Type为application/json的请求。- 如果请求体不是有效的 JSON 格式,
req.body可能会是undefined或null。 - 你可以通过传递选项对象来配置
express.json()的行为,例如设置解析的最大数据量:
app.use(express.json({ limit: '1mb' }));5. 示例解释
在推荐的代码示例中,我们创建了一个 Express 应用,并使用 express.json() 中间件来解析 JSON 请求体。当客户端向 /data 路径发送 POST 请求时,服务器会解析请求体中的 JSON 数据,并将其作为响应返回。