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

Node.js Fail to connect to mongodb 3 from Heroku to Mongolab : SCRAM-SHA-1

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

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

fail to connect to mongodb for address 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');
    }
});

我找到了答案,

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

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