首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: acl.middleware()不是函数

TypeError: acl.middleware()不是函数
EN

Stack Overflow用户
提问于 2016-08-07 16:23:04
回答 2查看 787关注 0票数 0

我正试图在我的Node.js应用程序中使用ACL。

使用acl模块,我有以下代码:

代码语言:javascript
复制
var express = require('express'), 
    logger = require('morgan'),
    mongoose = require('mongoose'),
    Acl = require('acl');

var app = express();

app.set('port', 8000);

mongoose.connect('mongodb://localhost:27017/test', function () {   
    console.log('Mongodb connection connected');

    var acl = new Acl(new Acl.mongodbBackend(mongoose.connection.db, 'acl_'), logger());

    acl.allow([
        {
            roles: ['guest'],
            allows: [
                { resources: '/test', permissions: 'get' }
            ],
        }
    ]);

    console.log('acl.middleware is a ', typeof acl.middleware);

    app.get('/test', acl.middlemare(), function (req, res) {

    });

    app.get('/unauthorized', acl.middlemare(), function (req, res) {

    });
});

app.listen(app.get('port'), function () {
    console.log('Express server listening on port %d', app.get('port'));
});

当我启动服务器时,我得到以下输出:

代码语言:javascript
复制
Express server listening on port 8000
Mongodb connection connected
acl.middleware is a function
TypeError: acl.middleware() is not a function
...

编辑:放置记录器后,我是一个给定的:Error: Broke parameter contract

我不知道我做错了什么。

我已经看过这个相关的回答,但仍然没有运气让它开始工作。

还有什么是我遗漏的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-07 16:51:09

这是acl.middleware()而不是acl.middlemare() (w对m)。

票数 1
EN

Stack Overflow用户

发布于 2016-12-24 17:20:21

您必须使用允诺来延迟ACL的实例化,直到Express完全初始化为止。

代码语言:javascript
复制
isMongoDBConnected = new Promise((resolve, reject) => {
    MongoClient.connect(mongoDBUrl, (e, db) => {
        if (e) {
            reject(e);
        } else {

            var mongoBackend = new NodeAcl.mongodbBackend(db /*, {String} prefix */);
            acl = new NodeAcl(mongoBackend, logger);

            defineRoles(acl);
            resolve(true);
        }
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38816166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档