【发布时间】:2015-08-11 20:45:40
【问题描述】:
如何在操作钩子中返回错误?
用例是在保存新模型实例后发送推送通知。
我观察到'after save' 事件,发送推送。如果由于某种原因失败,我想发送一个500 response 代码。我该怎么做?
我找不到关于 ctx 对象实际是什么或包含什么的文档。
Customer.observe('after save', function(ctx, next) {
//model saved, but sending push failed for whatever reason, and I want to now send a 500 error back to the user
//how? what's inside ctx? how do you send back a response?
next();
});
谢谢
【问题讨论】:
-
您可以使用
console.log(ctx)检查 ctx 对象。它是表示请求和相关数据的上下文对象(例如,ctx.instance是您的 Customer 实例)。要通过操作钩子传递错误,请将错误通过next(error);作为钩子的最后一行传递。但这就是我的理解结束的地方——我不确定这会在哪里结束,或者如何在中心位置处理它。 -
您可以使用 assert 模块以干净的方式抛出错误。
标签: strongloop loopback