我已将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
答案 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连接错误处理程序并查看错误是什么,这样您就可以深入了解它没有连接的原因。