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