要解决"body-parser 捕获错误的 JSON 数据"的问题,可以通过使用try-catch块来捕获错误,并在错误处理程序中处理该错误。以下是一个示例代码:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.post('/api/data', (req, res) => {
try {
// 在这里使用 req.body 进行操作,假设它是一个 JSON 对象
console.log(req.body);
res.status(200).json({ message: 'JSON 数据已成功接收' });
} catch (error) {
console.error('捕获到错误:', error);
res.status(400).json({ error: '无效的 JSON 数据' });
}
});
app.listen(3000, () => {
console.log('服务器已启动');
});
在上面的示例中,我们使用bodyParser.json()
中间件来解析请求的JSON数据。然后,在路由处理程序中,使用try-catch
块来捕获任何可能的JSON解析错误。如果捕获到错误,将向客户端发送一个包含错误消息的400响应。