错误处理的最佳方式是什么?
我需要自定义json错误消息。这是一个api。
exports.putCurso = function (req, res, next) {
util.updateDocument(req.curso, Curso, req.body);
req.curso.saveAsync()
.then(function (data) {
return res.status(201).json({message: 'Curso atualizado.', data: data});
})
.catch(function(error) {
return res.status(500).json({message: 'ERROR!'});
//OR return next(error); but I need custom json error messages so it doesn't make sense
})
.finally(next); //OR return next(error)? redundant?
};
最佳答案
我不是猫鼬,但我知道表达和承诺的一两件事
exports.putCurso = function (req, res, next) {
util.updateDocument(req.curso, Curso, req.body);
req.curso.saveAsync()
.then(function (data) {
res.status(201).json({message: 'Curso atualizado.', data: data});
}, function(error){
res.status(500).json({message: 'ERROR!'});
})
};
这基本上就是你所需要的。根据实现,这可能是一个正常的路由,因为它总是将一些东西(
res.json
)返回给客户端。因此,您不必调用next
,因为它是由中间件调用的另外,您不必返回任何内容,因为当您调用res.json时,它基本上说,这个请求在这里结束,没有其他内容。
最后,根据规范,promise
then
支持两个函数,第一个用于处理成功的案例,第二个用于异常。所以,您不必致电catch