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
作为选项而不是将其包含在连接字符串中?