2 дня мучаюсь с экспортом модуля
ACL, поисковик молчит в решении этих проблем. Есть
аналогичные темы на других форумах, но так решение и не найдено, хотя я уверен что это возможно!
Суть вопроса:
По инструкция ACL его необходимо инициализировать внутри mongoose.conect:
const mongoose = require('mongoose');
var node_acl = require('acl');
exports.connect = function (done) {
mongoose.connect(url, {useCreateIndex: true, useNewUrlParser: true}, function (err, db) {
if (err) {
console.log('Ошибка запуска базы')
return done(err);
}
var acl = new node_acl( new node_acl.mongodbBackend(mongoose.connection.db, 'acl_') );
console.log('Подключились к базе данных');
done();
});
};
При таком подключении все работает шикарно, внутри mongoose.connect выполняются все методы ACL. Но вот как можно экспортировать сам ACL в другой модуль?
Если инициализировать acl после mongoose.connect:
exports.connect = function (done) {
mongoose.connect(url, {useCreateIndex: true, useNewUrlParser: true}, function (err, db) {
if (err) {
console.log('Ошибка запуска базы')
return done(err);
}
var acl = new node_acl( new node_acl.mongodbBackend(mongoose.connection.db, 'acl_') );
console.log('Подключились к базе данных');
done();
});
};
var conn = mongoose.connection;
var acl = new node_acl( new node_acl.mongodbBackend(conn.db, 'acl_') );
То по естественны причинам conn.db === undefined, и поэтому инициализация ACL будет провальной.
Читая всякие форумы тегом ACL я наткнулся на возможное решение этой проблемы:
Оберните aclв функцию, если вы вызываете результаты опроса или оберните соединение в Promise, который экспортируется
Вроде звучит понятно, но на практике я не смог это все реализовать.
Если кто то сталкивался с этой проблемой прошу рассказать как вы ее решили. Если у кого то есть понимание как мне помочь, прошу помочь кусками кода, тк со слов могу понять но не смогу реализовать.
Как можно экспортировать данный модуль?