Node.js 无法从 Heroku 连接到 mongodb 3 到 Mongolab:SCRAM-SHA-1

Posted

技术标签:

【中文标题】Node.js 无法从 Heroku 连接到 mongodb 3 到 Mongolab:SCRAM-SHA-1【英文标题】:Node.js Fail to connect to mongodb 3 from Heroku to Mongolab : SCRAM-SHA-1 【发布时间】:2016-01-15 06:06:47 【问题描述】:

MongoLab 最近将 mongoDb 版本更新为 3.x。为了尝试重现环境,我将本地版本的 node.js 更新为 4.x,将 mongodb 更新为 3.x,将 mongoose 更新为 3.8。

在我的本地环境中,我能够连接到 mongoDb,但在 heroku 中我不能。 出现以下错误:

无法连接到 mongodb 获取地址 mongodb://user:password@host:port/dbname

我怀疑是旧版本的 mongoose,或者连接方式不好,但为什么它可以在我的本地环境中运行? 这里我如何将节点连接到 mongoDb:

var uriString = process.env.MONGOLAB_URI || process.env.MONGOHQ_URL
mongoose.connect(uriString, function (err, res) 
    if (err) 
        console.log('fail to connect to mongodb for address ' +       uriString);
     else 
        console.log('Connection to mongodb ok');
    
);

【问题讨论】:

您的应用产生的实际错误是什么? 就像我说的:无法连接到 mongodb 获取地址 mongodb://user:password@host:port/dbname Heroku app crashes after MongoDB updated to 3.0的可能重复 【参考方案1】:

我找到了答案,

Mongoose 4.0.0 似乎支持 MongoDB 3.0:Like mongodb doc illustrate

所以在将 mongoose 升级到 v4.x 后,我现在可以使用 SCRAM SHA 1 凭据连接到 mongoDB。

【讨论】:

以上是关于Node.js 无法从 Heroku 连接到 mongodb 3 到 Mongolab:SCRAM-SHA-1的主要内容,如果未能解决你的问题,请参考以下文章

从 Heroku 上的 Node.js 连接到 CloudSQL

从 Heroku 连接到 MongoDb 时应用程序超时

Node.js - 在 Heroku 上使用 MongoHQ 连接到 MongoDB

Heroku 上的 Node.js Express 应用程序不会使用 Mongoose 连接到 MongoLab 数据库

Heroku部署后Django(djongo)无法连接到MondoDB Atlas

连接到 Heroku node.js 应用程序中的数据库,而不在 git 上显示身份验证详细信息