【问题标题】:How to connect to mongodb with authorization in meanjs?如何在meanjs中通过授权连接到mongodb?
【发布时间】:2018-01-19 03:59:09
【问题描述】:

我是meanjs的新手。 我的问题是:我本地的mongodb有用户名/密码,无法成功运行meanjs demo。

我 git clone https://github.com/Azure-Samples/meanjs.git 并尝试运行它(在 Windows 10 上运行 npm),但出现此错误:

无法连接到 MongoDB! { MongoError:身份验证失败。 在 Function.MongoError.create (D:\Cordova\AzureMeanDemo\meanjs\node_modules\mongoose\node_modules\mongodb-core\lib\error.js:31:11)

然后我在meanjs\config\env\development.js 中设置用户名/密码,例如:

db: {
    uri: process.env.MONGOHQ_URL || process.env.MONGODB_URI || 'mongodb://' + (process.env.DB_1_PORT_27017_TCP_ADDR || 'localhost') + '/mean-dev',
    options: {
      user: 'superAdmin', //here
      pass: '*****'  //here
    },
    // Enable mongoose debug mode
    debug: process.env.MONGODB_DEBUG || false
  },
...

但我仍然遇到同样的错误。

我在谷歌上搜索了一整天,但没有任何相关信息。

谁能帮我解决这个问题?

-------------- 解决了-------

我更改了 uri:'mongodb://username:passwd@localhost/mean-dev?authSource=adm‌​in'。它对我有用。

【问题讨论】:

  • 对于本地主机只需使用uri: 'mongodb://localhost/mean-dev' 不需要选项...
  • 我的 MongoDB shell 版本 v3.6.1
  • @ShaishabRoy 但我使用 -auth 作为服务器运行 mongod,并且有用户名和密码。
  • 然后可以试试这个uri: 'mongodb://userName:Password@localhost/mean-dev' and 在此之前确保您已为 database 而不是 account 设置 userName 和 password用户名和密码,您的服务是否在本地运行?
  • @ShaishabRoy 是的,我的 mongod 服务正在本地运行。我发现我错过了另一个警告: Db.prototype.authenticate 方法将在下一个主要版本 3.x 中不再可用,因为 MongoDB 3.6 将只允许对 admin db 中的用户进行身份验证,并且不再允许在套接字上使用多个凭据.请使用带有身份验证凭据的 MongoClient.connect 进行身份验证。 ---这是导致问题的原因吗?

标签: mongodb meanjs


【解决方案1】:
var mongoose = require('mongoose');
 mongoose.connect('mongodb://localhost/projectName,{user:'',pass:''});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    相关资源
    最近更新 更多