【问题标题】:Bitnami Meanstack Mongoose ConnectionBitnami Meanstack Mongoose 连接
【发布时间】:2016-11-05 20:49:20
【问题描述】:

我在 Ubuntu 16.04 中使用 mongo db node 和 express 创建了一个简单的服务,以将数据返回到 angular 2 应用程序。

我有一个名为 server.js 的文件,它连接到一个本地 mongodb 实例,其中包含一个名为 game 的数据库和一个名为 player 的集合。它安装在我的本地机器上运行良好。但是我正在尝试在亚马逊 ec2 上使用 Bitnami 的平均堆栈图像部署它。 (嘴巴满了)。我已经按照this guide正确设置了端口,可以远程连接。但是,我无法让猫鼬连接到任何数据库。这是我在本地机器上运行的代码。

mongoose.connect('mongodb://localhost:27017/game');

router.route('/player')



.get(function(req, res) {
    console.log(mongoose.connection.readyState);
    Player.find({"player":user,"password":password},function(err, Test) {
        if (err)
            res.send(err);

        res.json(Test);
    });
});

这是我为平均堆栈图像调整后的代码

mongoose.connect('mongodb://root:"My-Root-Password@127.0.0.1:27017/game');
 router.route('/player')
.get(function(req, res) {

console.log(mongoose.connection.readyState);
    Player.find({"player":user,"password":password},function(err, Test) {
        if (err)
            res.send(err);

        res.json(Test);
    });
});

在我的本地机器上,console.log 上的值为 1,平均堆栈图像上的值为 0。我不确定如何使用 mongoose 连接到 bitnami 的 mongo 实例。我已经检查了该游戏是否存在并且有我想要的数据。

【问题讨论】:

    标签: node.js mongodb amazon-ec2 mongoose bitnami


    【解决方案1】:

    我找到了一个修复程序,虽然我还没有完全理解它。它来自我发布的指南 here 。首先,我必须取消注释掉 mongodb.conf 中 noauth = true 的部分,然后注释掉 auth = true 的行。然后我重新启动 mongo,并创建一个新用户,该用户有权读取和写入我想要使用的数据库,就像这样

    db.createUser({
        user: "NEW USERNAME",
        pwd: "NEW PASSWORD",
        roles:[
                {
                        "role" : "readWrite",
                        "db": "game"
                }
        ]})
    

    创建用户后,我撤消了对noauth = trueauth = true 所做的操作,然后重新启动mongodb。然后我就可以像这样连接猫鼬了

    mongoose.connect('mongodb://NEW USERNAME:NEW PASSWORD@127.0.0.1:27017/game');
    

    【讨论】:

      【解决方案2】:

      在 MongoDB 3.0 中,他们为 MongoDB 添加了新的身份验证机制(更多详细信息请参见下面的链接)。

      认证信息:https://docs.mongodb.com/manual/core/authentication/

      如何使用新的认证机制:https://www.mongodb.com/blog/post/improved-password-based-authentication-mongodb-30-scram-explained-part-2

      因此,该指南提供了该解决方法来获取与数据库的连接。现在,您已经在数据库上创建了具有“readWrite”权限的用户,因此您可以使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-25
        • 2015-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-16
        • 2020-03-06
        • 1970-01-01
        相关资源
        最近更新 更多