Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 如何在LoopbackJS中捕获验证错误(422,电子邮件已经存在)?_Rest_Loopbackjs_Strongloop - Fatal编程技术网

Rest 如何在LoopbackJS中捕获验证错误(422,电子邮件已经存在)?

Rest 如何在LoopbackJS中捕获验证错误(422,电子邮件已经存在)?,rest,loopbackjs,strongloop,Rest,Loopbackjs,Strongloop,我使用默认环回的RESTAPI。当我想创建一个新用户时,我只需向默认环回的端点/api/Users发送一个POST请求 问题是当数据库中已经存在电子邮件时,环回会抛出一个错误ValidationError;状态422;电子邮件已存在。我不知道如何抓住这个错误。因为如果我使用默认环回的端点,我无法控制User.create(…)方法。它在后台的某个地方调用,抛出一个错误。文档没有解释如何处理错误 我可以摆脱Loopback的默认REST API,手动执行所有注册步骤,如下所示: User.crea

我使用默认环回的RESTAPI。当我想创建一个新用户时,我只需向默认环回的端点
/api/Users
发送一个
POST
请求

问题是当数据库中已经存在电子邮件时,环回会抛出一个错误
ValidationError;状态422;电子邮件已存在
。我不知道如何抓住这个错误。因为如果我使用默认环回的端点,我无法控制
User.create(…)
方法。它在后台的某个地方调用,抛出一个错误。文档没有解释如何处理错误

我可以摆脱Loopback的默认REST API,手动执行所有注册步骤,如下所示:

User.create(..., function(err, user) {
    if(err) {
        handle error
    }
    handle success
})

但我想使用它的默认RESTAPI,毕竟它是一个框架。我怎样才能抓住并处理这样的错误呢?

我已经解决了。它们提供了
afterRemoteError()
钩子,该钩子在远程方法完成错误后运行

User.afterRemoteError('create', function(ctx, next) {
    console.log('> Client.afterRemoteError triggered');
    console.error('ctx.error: ', ctx.error);
    next(err);
});