MongoError-身份验证错误(带有@的密码)

时间:2019-08-08 14:20:58

标签: node.js mongodb

这是我的NodeJS应用程序中的代码,用于连接到我的MongoDB引擎:

 const collection = 'mynewcollection';
 const password = 'passwordwithan@';
 const mongoUrl = `mongodb://admin:${encodeURIComponent(password)}@mymongobase.net/${collection}`;

 // Connect using the connection string
 MongoClient.connect(mongoUrl, {useNewUrlParser: true}, function(err, db) {
   console.log(err.toString())
 });

我收到验证错误。我尝试了几种方法来处理'@'字符,并阅读了文档,我认为那是一个很好的... 但是即使用户名和密码都是好的,它仍然会失败。

API是否正确使用?您了解什么地方不对吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案。 如果您使用:

const mongoUrl = `mongodb://admin:${encodeURIComponent(password)}@mymongobase.net/${collection}`;

Mongo将尝试使用集合中定义的管理员密码

如果您不将集合放入mongo网址中:

const mongoUrl = `mongodb://admin:${encodeURIComponent(password)}@mymongobase.net`;

然后,您可以使用所有mongo引擎上定义的超级用户。