2016-11-05 119 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

由於這個原因,引導提供瞭解決方法,以獲得與數據庫的連接。現在,您已經在數據庫上創建了具有「讀寫」權限的用戶,因此您可以使用它。