在连接字符串中使用Dbname时,MongoDB / Mongoose连接错误

时间:2019-06-20 14:22:58

标签: javascript node.js mongodb docker mongoose

NodeJS应用程序使用mongoose 5.6.0连接到在docker容器内的localhost上运行的MongoDB 4.0.10。

当我们使用

时可以建立连接
const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017'
mongoose.connect(mongoUri)

问题:当我们包含要连接的数据库的名称时,我们开始收到身份验证错误。使用Python连接到相同的MongoDB数据库没有问题。

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017/my-db'
mongoose.connect(mongoUri)

也尝试过

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017/my-db'
mongoose.connect(mongoUri, { useNewUrlParser: true })
  
    

UnhandledPromiseRejectionWarning:MongoNetworkError:首次连接[MongoError:身份验证失败。]首次连接服务器[127.0.0.1:27017]失败。

  

为什么无法建立连接,我们如何解决此问题?

更新

找到了解决方案

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017'
mongoose.connect(mongoUri, { useNewUrlParser: true, dbName: 'my-db' })

为什么必须将dbname作为选项而不是将其包含在连接字符串中?

0 个答案:

没有答案