【问题标题】:MongoDB via Mlab - MongoError: Authentication failedMongoDB 通过 Mlab - MongoError:身份验证失败
【发布时间】:2018-11-27 15:19:39
【问题描述】:

我正在使用 nodejs、expressJs 和 mongodb 创建一个简单的服务器

这里是 server.js

const express        = require('express');
const MongoClient    = require('mongodb').MongoClient;
const bodyParser     = require('body-parser');
const db             = require('./config/db');
const app            = express();
const port = 8000;
app.use(bodyParser.urlencoded({ extended: true }));
MongoClient.connect(db.url, (err, database) => {
  if (err) return console.log(err)
  require('./app/routes')(app, database);
  app.listen(port, () => {
    console.log('We are live on ' + port);
  });               
})

注意:数据库信息一切正常,

当我运行 node server.js 时,我收到以下错误:

    C:\Users\Bonge\Documents\Projects\movies_database>node server.js
{ MongoError: Authentication failed.
    at Function.MongoError.create (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\error.js:31:11)
    at C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:497:72
    at authenticateStragglers (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:443:16)
    at Connection.messageHandler (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:477:5)
    at Socket.<anonymous> (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\connection.js:331:22)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
  name: 'MongoError',
  message: 'Authentication failed.',
  ok: 0,
  errmsg: 'Authentication failed.',
  code: 18,
  codeName: 'AuthenticationFailed' }

我的代码有什么问题?

【问题讨论】:

  • 显示您的数据库配置文件并检查stackoverflow.com/questions/30924859/…
  • 你的 mongoose 和 mongodb 版本是多少?还有配置文件
  • @Ashish mongodb 版本:“mongodb”:“^2.2.33”,
  • @GauravPaliwal module.exports = { url: "mongodb://dbnameusername:dbpass@ds255260.mlab.com:55260/dbname" }
  • @HotZellah doc 说:可选。如果连接字符串包含用户名:密码@ 形式的身份验证凭据,则要进行身份验证的数据库的名称。如果未指定 /database 并且连接字符串包含凭据,则驱动程序将对管理数据库进行身份验证。

标签: node.js mongodb express mongoose


【解决方案1】:

我发现解决方案刚刚创建了新数据库和新用户,现在一切正常

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 2021-04-24
    • 2021-10-09
    • 2016-04-07
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 2016-01-01
    相关资源
    最近更新 更多