我的控制器中有一些函數調用某些數據庫函數。所有這些數據庫函數都會執行「錯誤回調」,這意味着如果發生數據庫錯誤,它們將執行單獨的回調來處理錯誤。例如:將變量綁定到回調函數
exports.referralComplete = function(req, res){
/*getting id etc.*/
db.startDatabaseConnection(function() {
db.flagReferralAsDone(id, function(success) {
db.endDatabaseConnection();
/*doing stuff on success*/
}, onError);
}, onError);
function onError(err, description) {
logger.error(description + ": " + err);
user.pageNotFound(req, res);
}
}
我有很多類似這個的函數,它們調用不同的數據庫函數。問題是我目前已經將onError()複製到它們中的每一個的範圍中,因爲在處理錯誤時我需要req和res變量。我當然可以將res和req傳遞給數據庫函數,然後將它們作爲參數傳遞給錯誤回調函數,但我認爲可能有更好的方法。
所以問題是:是否有可能以某種方式將res和req綁定到全局onError回調函數,這樣我就不必將變量作爲參數傳遞給db函數了?
我對node.js和javascript一般都很陌生,所以如果有更好的處理錯誤的方法,請告訴我。
的聯繫是很長,但內容它指向,沒有那麼多! :) – bfavaretto