Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 连接字符串中使用Dbname时出现MongoDB/Mongoose连接错误_Javascript_Node.js_Mongodb_Docker_Mongoose - Fatal编程技术网

Javascript 连接字符串中使用Dbname时出现MongoDB/Mongoose连接错误

Javascript 连接字符串中使用Dbname时出现MongoDB/Mongoose连接错误,javascript,node.js,mongodb,docker,mongoose,Javascript,Node.js,Mongodb,Docker,Mongoose,NodeJS应用程序使用mongoose 5.6.0连接到MongoDB 4.0.10,后者在docker容器内的localhost上运行 当我们使用 const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017' mongoose.connect(mongoUri) 问题:当我们包含要连接的数据库的名称时,就会出现身份验证错误。使用Python连接到同一个MongoDB数据库没有问题 const mongoUri = 'mongod

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

当我们使用

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 })
未经处理的PromisejectionWarning:MongoNetworkError:无法在第一次连接时连接到服务器[127.0.0.1:27017][MongoError:身份验证失败

为什么它无法连接,我们如何解决这个问题

更新 发现解决方案是

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017'
mongoose.connect(mongoUri, { useNewUrlParser: true, dbName: 'my-db' })
为什么必须将
dbname
作为选项传递,而不是将其包含在连接字符串中