Дело не столько в запуске транзакции, сколько в том, как вы структурируете свой модуль.Я предлагаю вам создать модуль подключения к базе данных в виде одного сценария, а затем экспортировать оттуда «db», где вы можете хранить / обновлять ссылки на базу данных.Примерно так (тривиальный пример):
// db module
const state = {
db: null
};
function connect() {
state.db = mongoose.createConnection(process.env.NODE_URL);
}
function getConnection() {
return Promise.resolve(state.db);
}
module.exports = {
connect,
getConnection,
}
Затем в вашем модуле просто лениво получите:
let getConnection = require('./db'); // or wherever it is
module.exports = function(params, opts) {
return getConnection()
.then(db => db.startSession())
.then(session => session.startTransaction(/* ... */))
// ..
}
Модуль придуман, но может помочь вам в этом.