【发布时间】:2021-06-01 01:15:08
【问题描述】:
我正在我的机器上运行一个节点和 mongodb docker 应用程序,但是当我尝试使用 moogose 连接到数据库时它返回:
MongoError: Authentication failed.
at MessageStream.messageHandler (D:\Node\08-multi-dbb-mongodb\node_modules\mongodb\lib\cmap\connection.js:272:20)
at MessageStream.emit (events.js:223:5)
at processIncomingData (D:\Node\08-multi-dbb-mongodb\node_modules\mongodb\lib\cmap\message_stream.js:144:12)
at MessageStream._write (D:\Node\08-multi-dbb-mongodb\node_modules\mongodb\lib\cmap\message_stream.js:42:5)
at doWrite (_stream_writable.js:435:12)
at writeOrBuffer (_stream_writable.js:419:5)
at MessageStream.Writable.write (_stream_writable.js:309:11)
at Socket.ondata (_stream_readable.js:728:22)
at Socket.emit (events.js:223:5)
at addChunk (_stream_readable.js:309:12)
at readableAddChunk (_stream_readable.js:290:11)
at Socket.Readable.push (_stream_readable.js:224:10)
at TCP.onStreamRead (internal/stream_base_commons.js:181:23) {
ok: 0,
code: 18,
codeName: 'AuthenticationFailed',
name: 'MongoError'
}
以下是我建立连接的方式: 文件名:mongodb.js
const mongoose = require('mongoose')
mongoose.connect('mongodb://user:password@localhost:27017/dbname',
{useNewUrlParser: true, useUnifiedTopology: true}, function (error){
if(!error) return;
console.log('Falha na conexao!', error)
}
)
const connection = mongoose.connection
connection.once('open', () => console.log('database rodando!!'))
我可以通过客户端(可视化界面)访问数据库,也可以通过终端连接数据库,例如
docker exec -it 347b053d4320 mongo -u user -p password --authenticationDatabase myDb
但是当我尝试运行 mongodb.js 文件的代码时,它会返回错误。
如果你能出于好意帮助我。
谢谢!
【问题讨论】:
标签: node.js mongodb docker mongoose