我正在创建一个只接受json体型并使用body-parser表达的应用程序。不断出现的问题是,如果我发送一个无效的json主体,那么我的程序会将一个愚蠢的错误抛回给用户,并在控制台中。如何防止此控制台错误并拒绝使用不正确的JSON正文的请求。
提前致谢, 艾利。
PS。这是一些示例代码,用于显示我正在做的事情:
var bodyParser = require('body-parser');
var express = require('express');
var app = express();
app.use(bodyParser.json());
app.post('/test', function(req, res){
res.status(200).send("Hi");
});
app.listen(8081, function(){
console.log("Server is running");
});
答案 0 :(得分:3)
您需要将一些错误处理中间件附加到您的应用程序。你如何处理这个错误取决于你,但作为你如何做的一个例子:
var bodyParser = require('body-parser');
var express = require('express');
var app = express();
app.use(bodyParser.json());
// this is a trivial implementation
app.use((err, req, res, next) => {
// you can error out to stderr still, or not; your choice
console.error(err);
// body-parser will set this to 400 if the json is in error
if(err.status === 400)
return res.status(err.status).send('Dude, you messed up the JSON');
return next(err); // if it's not a 400, let the default error handling do it.
});
app.post('/test', function(req, res){
res.status(200).send("Hi");
});
app.listen(8081, function(){
console.log("Server is running");
});