2015-12-10 36 views
0

我正在編寫一個服務供我的控制器在我的Sails.js應用程序中使用。如何在Sails.js中手動構造非自定義錯誤

如果在服務中引發錯誤,我想返回一個錯誤。我習慣於function callback(err, bar){ if (err) return error}的語法。不過,我的情況略有不同。在下面的代碼

function callBack(err, uploadedFiles){ 
    if (err) return err; 
    if (uploadedFiles.length == { 
     return foo; //This is what needs to be of type "err" 
    } 
}); 
} 
} 

所以我創建像

return { error: "error", message: 404} 

一個JSON對象,我不知道如何做到這一點。

回答

1

你爲什麼不使用響應帆的功能呢?如果說一些愚蠢的話,我也是新的,所以請原諒。

如果您要發送404個狀態碼這是未找到的錯誤,你可以使用),這樣提供的響應res.notFound(帆:

return res.notFound({ 
    message: "Some Message Here" 
}); 

如果你想顯示完全自定義的消息而不像404的任何狀態代碼,然後使用send(),而不是像這樣:

return res.send({ 
    status: "404 or anything you like", 
    message: "Some Message Here" 
}); 

對不起,res.send()也將生成狀態代碼,但是這將是200,這意味着OK,所以它的成功代碼。

0

我相信它是:

{success:false, error: err} 
0

,您可以提高404錯誤在你的服務是這樣的(假設你的服務需要異步工作):

var err = new Error('your message'); 
err.status = 404; // could be other HTTP status 
return cb(err); 

而在你通話功能,可以處理錯誤是這樣的:

SomeServices.somefunction(options, function (err, data) { 
    // res.negotiate(err) will automatically trigger res.notFound if err.status is 404 
    if (err) return res.negotiate(err); 
    /* your logic if not 404 */ 
} 

這裏的代碼很簡單。那是你要的嗎?

相關問題