错误处理的最佳方式是什么?
我需要自定义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时,它基本上说,这个请求在这里结束,没有其他内容。
最后,根据规范,promisethen支持两个函数,第一个用于处理成功的案例,第二个用于异常。所以,您不必致电catch

09-17 08:36