2014-09-04 119 views
0

我試圖使用acl module來獲得用戶權限。Acl node.js模塊

我用npm install acl --save安裝了模塊。

添加如下幾行代碼:

var acl = require('acl'); 
var redisClient = require('redis'); 

acl = new acl(new acl.redisBackend(redisClient, 'session')); 

acl.allow('member', 'events', 'view'); 

收到此錯誤:

TypeError: Object #<Object> has no method 'multi' 
    at Object.RedisBackend.begin (workspace/server/node_modules/acl/lib/redis-backend.js:23:23) 
    at Acl.allow (workspace/server/node_modules/acl/lib/acl.js:231:37) 
    at Object.<anonymous> (workspace/server/app.js:24:5) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Object..js (/usr/lib/node_modules/node-dev/lib/hook.js:52:17) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 

任何想法?

回答

0

問題是redisClient未正確初始化。

//this line did the trick 
var redisInstance = require('redis').createClient(6379, '127.0.0.1', {no_ready_check: true}); 

然後

acl = new acl(new acl.redisBackend(redisInstance, 'session'));