我使用默认的Loopback的REST API。当我想创建新用户时,我只是向默认的Loopback的端点POST
发送/api/Users
请求。
问题是当数据库中已存在电子邮件时,Loopback会抛出错误ValidationError; status 422; Email already exists
。而且我不知道如何捕捉到这个错误。因为如果我使用默认的Loopback的端点,我无法控制User.create(...)
方法。它在后台的某处被称为抛出错误。文档没有解释如何处理错误。
我可以摆脱Loopback的默认REST API并手动执行所有注册步骤,如下所示:
User.create(..., function(err, user) {
if(err) {
handle error
}
handle success
})
但是我想使用它的默认REST API,毕竟它是一个框架。我怎样才能抓住并处理这样的错误?
答案 0 :(得分:0)
我明白了。它们提供在远程方法完成错误https://docs.strongloop.com/display/public/LB/Remote+hooks
之后运行的afterRemoteError()
挂钩
User.afterRemoteError('create', function(ctx, next) {
console.log('> Client.afterRemoteError triggered');
console.error('ctx.error: ', ctx.error);
next(err);
});