【问题标题】:Can't connect mlab to now.sh无法将 mlab 连接到 now.sh
【发布时间】:2018-07-18 20:50:01
【问题描述】:

我刚刚完成了 Udemy 上的一门 React 全栈课程。我部署到heroku的结果项目。一切顺利,我可以访问我的数据库,除了授权,但没关系。

我想使用另一个平台 - now.sh。测试页面在 now.sh 上完美运行。但是到了连接数据库的时候,我就有问题了。

我在 mlab 上为项目创建了 db,并尝试通过“now secret add db”连接它。

当我部署它时,我得到了错误:

[0] MongoError: 首次连接时无法连接到服务器 [localhost:27017] [MongoError: connect ECONNREFUSED 127.0.0.1:27017]

我了解,它会尝试通过 localhost 进行连接。为了进行测试,我尝试删除本地配置并仅保留生产设置(env.process.MONGODB_URI 等)。之后我得到了远程主机的未定义。

我认为,问题在于与 mlab 的连接不正确。

你能告诉我如何解决它吗?

我的 config.js:

const config = {
  production: {
    SECRET: process.env.SECRET,
    DATABASE: process.env.MONGODB_URI
  },
  default: {
    SECRET: 'SUPERSECRETPASSWORD123',
    DATABASE: 'mongodb://localhost:27017/booksShelf'

  }
}

exports.get = function get(env){
  return config[env] || config.default
}

server.js 的一部分

 const express = require('express');
 const config = require('./config/config').get(process.env.NODE_ENV)
 const app = express();

 mongoose.connect(config.DATABASE)

....
....
....

 const port = process.env.PORT || 3001;

 app.listen(port, ()=>{
   console.log('server running')
 })

【问题讨论】:

    标签: javascript node.js mlab


    【解决方案1】:

    我在其他地方找到了答案。

    问题是我需要像这样配置我的 now.json:

     {
      "env": {
        "NODE_ENV": "production",
        "MONGODB_URI": "@db"
      }
    }
    

    就是这样。一切正常。

    【讨论】:

      猜你喜欢
      • 2016-09-24
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      相关资源
      最近更新 更多