首页 > 解决方案 > 无法使用我的 heroku 应用程序连接到 mongodb 数据库?

问题描述

我无法将部署到 Heroku 的 Node.js 应用程序与 MongoDB 数据库连接起来。它在 localhost 上运行良好,但在 Heroku 上运行良好。

在我的日志中,我看到了这个:

MongoNetworkError: failed to connect to server [authproject-shard-00-01-ybey8.mongodb.net:27017] on first connect [MongoNetworkError: connection 4 to authproject-shard-00-01-ybey8.mongodb.net:27017 closed]


custom-environment-variables.json

{
  "db": "Auth_db"
}

default.json

{
  "db": "mongodb://localhost/user"
}

db.js

  const db = config.get("db");
  mongoose
    .connect(db)
    .then(() => console.log("connected to mongodb.."))
    .catch(err => console.error("could not connect to mongodb", err));
};

标签: node.jsmongodbheroku

解决方案


您需要在 Heroku 应用程序中配置环境变量。

在控制台中运行:

heroku config:set MONGODB_URI='urlOfYourMongoDatabase'

然后像这样升级你的 db.js:

const mongoose = require('mongoose')

mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/TodoApp', { useNewUrlParser: true })
        .then(connect => console.log('connected to mongodb..'))
        .catch(e => console.log('could not connect to mongodb', e))

module.exports = {mongoose}

祝你好运!


推荐阅读