如何使用login密码在NodeJS中启动本地Mongo
我想弄清楚如何使用本地节点mongo驱动程序连接到我的mongodb数据库,我有两个问题:
- 我的密码包含一个@符号,使其打破正常的用户:传递@主机连接string格式
- 如何从下面列出的数据库中列出数据库?
任何想法如何解决这个问题?
这是一个不起作用的尝试:
var Mongo = require('mongodb'); var server = new Mongo.Server('mongodb://myhost', 27017); var db = new Mongo.Db('test', server); db.open(function(err, db) { console.log(err); //unable to connect });
对于未来的读者,我可以通过连接选项uri_decode_auth
来解决这个uri_decode_auth
。 在将其embedded连接string之前,您需要encodeURIComponent(password)
。
这是一个完整的工作示例:
MongoClient.connect(connection, { uri_decode_auth: true }, function(err, db) { if(err) { return cb(err); } db.admin().listDatabases(function(err, dbs) { console.log(dbs); }); });
正如在这个答案中提到的:
解决方法是用
%40
replace@
我用C#驱动程序进行testing,它的作用就像一个魅力。