2015-11-03 49 views
0

我使用默認的Loopback的REST API。當我想創建一個新用戶時,我只需發送一個POST請求到默認的Loopback端點/api/Users如何在LoopbackJS中捕獲驗證錯誤(422,電子郵件已存在)?

問題是電子郵件已存在於數據庫中時,Loopback引發錯誤ValidationError; status 422; Email already exists。我不知道如何捕捉這個錯誤。因爲如果我使用默認的環回端點,我無法控制User.create(...)方法。它在背景中被稱爲拋出錯誤的地方。文檔沒有解釋如何處理錯誤。

我可以擺脫環回默認的REST API和手動完成所有的註冊步驟,這樣的:

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

但我想使用它的默認REST API,它是一個框架,畢竟。我怎樣才能捕捉並處理這樣的錯誤?

回答

0

我想通了。他們提供了afterRemoteError()鉤子,在遠程方法完成後出現錯誤並運行https://docs.strongloop.com/display/public/LB/Remote+hooks

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