【发布时间】:2018-12-28 14:36:26
【问题描述】:
我正在为我的 express 应用程序实现 acl usind node_acl。 我在一个单独的文件中建立数据库连接来处理猫鼬的连接时间,如下所示: 连接.js:
const mongoose = require('mongoose');
module.exports = function initConnection(callback) {
mongoose.connect('mongodb://127.0.0.1:27017/aclExample', {});
var db = mongoose.connection;
db1 = mongoose.connection.db;
db.on('error', function (err) {
console.error('Failed to connect to database');
process.exit(1);
});
db.once('open', function () {
console.info("Connected to database");
callback(db1);
console.log('acl is now set');
});
};
并将其包含在 app.js 中以创建这样的 acl 对象
var node_acl = require('acl');
var connectACL = require('@root/fe-server/middlewares/fe.middleware.acl.js');
connectACL(function(db){
acl = new node_acl(new node_acl.mongodbBackend(db, 'acl_'));
});
console.log('ACL: ',acl);
问题是console.log 在数据库连接建立之前执行。我该如何处理?我必须在我的 app.js 和其他文件中使用 acl 来进行路由授权,因此在回调中使用它总是没有意义。 提前致谢。
【问题讨论】:
标签: node.js mongodb express acl