我刚刚完成了有关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')
})
答案 0 :(得分:0)
我在另一个地方找到了答案。
我需要像这样配置now.json:
{
"env": {
"NODE_ENV": "production",
"MONGODB_URI": "@db"
}
}
就是这样。一切正常。