我有一个NodeJS应用程序,Express用作我的Web服务器,Mongoose用作MongoDB上的抽象层。现在这样写一个简单的Express路由。
module.exports.getProfile = function(req, res, next) {
Users.findOne({
'_id': req.user._id
}).exec(function(err, profile) {
if (err) {
res.sendStatus(500);
} else if (profile) {
res.status(200).send(JSON.stringify({
'profile': profile
}));
} else {
res.status(400).send(JSON.stringify({
'message': "Profile Not found"
}));
}
});
};
现在我的应用程序中至少有100个这样的函数,而不是每次都写res.sendStatus(500),我想创建一个这样的函数。
var sendError = function(err, res, next) {
if (err) {
res.status(500).send(JSON.stringify({
'message': "Internal server error. Couldn't connect to database. Please report this issue and try again"
}));
next();
}
};
并为每个数据库调用。 if(err)sendError(err,res,next);没有工作,不知怎的,我觉得它不对。那么这种情况下的最佳做法是什么?