如何在LoopbackJS中捕获验证错误(422,Email已存在)?

时间:2015-11-03 10:04:45

标签: rest loopbackjs strongloop

我使用默认的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,毕竟它是一个框架。我怎样才能抓住并处理这样的错误?

1 个答案:

答案 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);
});