У меня есть несколько функций в контроллере, которые вызывают некоторые функции базы данных. Все эти функции базы данных выполняют "обратные вызовы", что означает, что при возникновении ошибки базы данных они выполняют отдельный обратный вызов, который обрабатывает ошибку. Пример:
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 в целом, поэтому, если есть лучший способ обработки ошибок, сообщите мне.