mLab不适用于Heroku

时间:2017-04-16 23:15:38

标签: node.js reactjs heroku mongoose mlab

我已将mLab添加到我的Heroku应用程序中,我也使用了猫鼬。我尝试使用localhost中的连接字符串,它正在工作(差不多)。在我的服务器文件中,我使用:

var db = mongoose.connection;
if (process.env.MONGODB_URI) {
 mongoose.connect('mongodb://heroku_fb82r7lw:bbgj8uliam1psdda88fleu55li@ds161580.mlab.com:61580/heroku_fb82r7lw');

    // mongoose.connect(process.env.MONGODB_URI);
} else {
 mongoose.connect('mongodb://heroku_fb82r7lw:bbgj8uliam1psdda88fleu55li@ds161580.mlab.com:61580/heroku_fb82r7lw');

    // mongoose.connect('mongodb://localhost/fitMe')
}

如果我从localhost打开应用程序,它会将内容保存到数据库中,并且可以将其保存回来,虽然不是所有内容,但是在heroku上它根本不起作用。我用反应服务器。我认为路径有问题..所以这里是服务器文件的链接: https://github.com/HelenaVolskaia/Motivation/blob/master/server/app.js

1 个答案:

答案 0 :(得分:0)

您可以在本地设置一个env变量,只使用它:

// Connect Mongo
mongoose.Promise = global.Promise; // mongoose promises deprecated, use node - mongoosejs.com/docs/promises
mongoose.connect(config.db.MONGODB_URI);
mongoose.connection.once('open', () => { console.log('MongoDB Connected'); });
mongoose.connection.on('error', (err) => { console.log('MongoDB connection error: ', err); });

但无论如何,添加on连接错误处理程序并查看错误是什么,这样您就可以深入了解它没有连接的原因。