2017-05-04 14 views
1

mongoDB atlasクラスタに接続しようとしましたが、認証に失敗しました。 私はStudio 3TのようなクライアントとMongoシェルから接続することができます。Node.JSからMongoDB Atlasへの認証に失敗しました

は、ここに私の接続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); 
関連する問題