我的控制器中有一些函数调用某些数据库函数。所有这些数据库函数都会执行“错误回调”,这意味着如果发生数据库错误,它们将执行单独的回调来处理错误。例如:将变量绑定到回调函数
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