Мне нужна помощь с шаблоном проектирования для создания соединения с базой данных в моем приложении node.js.
Кажется очевидным, что нужно сделать:
module1:
var db;
exports.get_db = function(callback) {
if (db == null) {
dblibrary.create(connection_params, function(error, conn) {
if (error == null) {
db = conn;
callback(null, db);
}
});
} else {
callback(null, db);
}
};
module2:
exports.do_something = function () {
module1.get_db(function (err, conn) {
if (err == null) {
// continue using query
}
});
};
Кажется, что больно наказывать каждого человека, который хочет получить соединение с БД, требованием использования обратного вызова.
Я мог бы сделать это:
module1:
var db;
dblibrary.create_connection(connection_params, function (err, conn) {
if (err != null) {
console.log("can't create connection");
console.log(err);
process.exit();
} else {
db = conn;
}
});
exports.get_db = function() {
return db;
};
Это делает процесс подключения БД простым и быстрым, но означает, что мы должны "ждать" во время запуска узла, чтобы установить соединение.
Какой дизайн лучше?Есть ли лучший способ делать вещи?