【发布时间】: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