我有猫鼬和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/