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") 

내가 아틀라스 콘솔에서이 복사됩니다. MongoDB 2.2.26을 사용하는 Mongoose 4.9.7을 사용하고 있습니다. 따라서이 모듈의 최신 버전을 사용하고 있습니다. 이 될 수있는 것을

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); 
으로 변경했습니다.
관련 문제