无法将mlab连接到now.sh

时间:2018-07-17 19:21:01

标签: javascript node.js mlab

我刚刚完成了有关Udemy的React Full-Stack课程之一。结果项目我部署到了heroku。一切正常,除授权外,我可以访问我的数据库,但这没关系。

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

我在mlab上为该项目创建了数据库,并尝试通过“ now secret add db”将其连接。

当我部署它时,出现错误:

  

[0] MongoError:首次连接[MongoError:connect ECONNREFUSED 127.0.0.1:27017]时,无法连接到服务器[localhost: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')
 })

1 个答案:

答案 0 :(得分:0)

我在另一个地方找到了答案。

我需要像这样配置now.json:

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

就是这样。一切正常。