2017-05-04 30 views
1

MongoDB授權失敗我試圖連接到我的mongoDB集羣,但得到身份驗證失敗。 我可以從Studio 3T和Mongo shell等客戶端進行連接。從Node.JS

這裏是我的連接URI:

var conn = mongoose.connect("mongodb://<user>:<password>@xxx-shard-00-00-kqmqb.mongodb.net:27017,xxx-shard-00-01-kqmqb.mongodb.net:27017,xxx-shard-00-02-kqmqb.mongodb.net:27017/myDB?ssl=true&replicaSet=xxxCluster-shard-0&authSource=admin") 

我複製這從地圖集控制檯。 我使用Mongoose 4.9.7,它使用MongoDB 2.2.26,所以我使用這些模塊的最新版本。

我得到的錯誤是:

MongoError: authentication fail 

任何想法,這可能是什麼?

回答

3

找到了解決方案。我的密碼有特殊字符,所以我必須正確編碼它。更改爲

var f = require('util').format;  
var user = encodeURIComponent('user'); 
var password = encodeURIComponent('[email protected]'); 
var url = f("mongodb://%s:%[email protected]:27017,xxx-shard-00-01-kqmqb.mongodb.net:27017,xxx-shard-00-02-kqmqb.mongodb.net:27017/myDB?ssl=true&replicaSet=xxx-shard-0&authSource=admin",user,password); 
var conn = mongoose.connect(url);