【发布时间】:2015-11-16 11:53:10
【问题描述】:
我在使用 express-mongoose-restify 提供错误消息时遇到问题。
我的架构有一个类似的钩子
myschema.pre('save', function(next){
// If validation fails
next(new Error('failed to validate model'))
})
对于错误处理,我有(类似于)以下代码
resify.serve(express.Router(), mongoose.model('myschema', {
onError: function(err, req,res,next){
console.log(err)
res.status(400).json(err)
}
})
验证失败时向控制台输出如下:
{ [Error: failed to validate model] statusCode : 400 }
在我的客户端中,我有以下 (jquery) ajax 错误处理程序:
$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
console.log(jqxhr)
console.log(thrownError)
});
thrownErorr 等于 "Bad Request" 和 jqxhr 有 reseponseText: "{"statusCode" : 400}" 类似(但解析为 JS)的 responseJSON。消息failed to validate model 未发送到客户端。我认为我误解了err 在我的服务器端错误处理程序中的对象类型。有什么想法吗?提前致谢!
【问题讨论】:
标签: node.js express mongoose middleware restify