我有猫鼬和Promisify

这是保存前的条件-我检查一下暂停(超时),然后添加一个(如果可以的话)

//check if there is a pause for this id
HonkSchema.pre('save', function(next) {
  var query  = Pause.where({ id: this.id }).findOneAsync()
    .then(function(res){
        if(res) {

          var e = new Error('Not 5 Minutes')
          next(e)
        }//else {
          next()
        //}
    })
    .catch(function(err){
      console.log(err)
      var err = new Error(err);
      next(err);
    })
});

//Add pause
HonkSchema.pre('save', function(next) {
  Pause.createAsync({id: this.id})
    .then(function(res){
      next()
    })
    .catch(function(err){
      console.log(err)
      var err = new Error(err);
      next(err);
    })
});


我像这样创建一个新的

// Creates a new Honk in the DB
export function create(req, res) {
  Honk.createAsync(req.body)
    .then(responseWithResult(res, 201))
    .catch(handleError(res, 412));
}


而handleError这样做

function handleError(res, statusCode) {
  statusCode = statusCode || 500;
  return function(err) {
    console.log(err)
    res.status(statusCode).send(JSON.stringify(err));
  };
}


上面的日志消息给出了这个

{ [Error: Not 5 Minutes] cause: [Error: Not 5 Minutes], isOperational: true }


但是给客户端的错误信息是这样的

{"cause":{},"isOperational":true}


所以我的问题是,如何向客户发送有意义的消息?

最佳答案

您可以使用如下形式:

return res.status(statusCode).send({ error : err.message });

关于node.js - 如何使用Mongoose和Promisify解压缩此错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34764254/

10-11 10:32