2016-11-05 116 views
0

我在Ubuntu 16.04中用mongo db节点创建了一个简单的服务,并表示将数据返回到角度为2的应用程序。Bitnami Meanstack猫鼬连接

我有一个名为server.js的文件,它连接到一个名为game的数据库和一个名为players的集合的本地mongodb实例。它工作正常安装在我的本地机器上。不过,我正试图在亚马逊ec2上将Bitnami的平均堆栈映像部署到它。 (ble嘴满)。我已根据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:"[email protected]: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。我不确定如何通过猫鼬连接到bitnami的mongo实例。我查过那个游戏存在并且有我想要的数据。

回答

0

我发现了一个修复虽然我还没有完全理解它。它来自我发布的指南here。首先,我必须取消将mongodb.conf中的noauth = true部分注释掉,然后注释auth = true。然后我重新启动蒙戈,并创建具有权限的新用户读取和写入数据的基础我想用这样的

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

创建用户之后我撤消我做了什么,以noauth = trueauth = true,并重新启动的MongoDB 。然后,我可以这样

mongoose.connect('mongodb://NEW USERNAME:NEW [email protected]:27017/game'); 
0

与猫鼬连接用的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

由于这个原因,引导提供了解决方法,以获得与数据库的连接。现在,您已经在数据库上创建了具有“读写”权限的用户,因此您可以使用它。