我非常接近一個明確的應用在在Heroku沙箱環境中使用MongoDB的附加工作..的ReferenceError對Heroku的MongoLab連接
我還在日誌,這似乎是爲理由看到ReferenceError
應用程序崩潰。
的第一個錯誤是關於此配置:
//MongoDB
var mongodb = require('mongodb');
var db;
var MONGODB_URI = process.env.MONGOLAB_URI;
var PORT = process.env.PORT;
mongodb.MongoClient.connect(MONGODB_URI, function(err, database) {
if(err) throw err;
db = database;
app.listen(PORT);
console.log('Listening on port ' + PORT);
});
var testColl = db.collection('test');
這導致日誌讀取TypeError
,可能是因爲db
是本地定義..
app[web.1]: var testColl = db.collection('test');
app[web.1]: TypeError: Cannot call method 'collection' of undefined
而近期的錯誤是的ReferenceError :
app[web.1]: var db = database;
app[web.1]: ReferenceError: database is not defined
可能因爲database
是全局定義的,但連接的範圍內沒有被引用..
//MongoDB
var MongoClient = require('mongodb').MongoClient,
var Server = require('mongodb').Server;
var mongoUri = process.env.MONGOLAB_URI;
var port = process.env.PORT;
var db = database;
var mongoclient = new MongoClient(new Server(mongoUri,
{ 'native_parser' : true }));
var testColl = db.collection('test');
mongoclient.open(function (err, mongoclient) {
if (err) throw err
app.listen(port);
console.log("Express server started on port " + port);
});
我怎樣才能重新設置代碼的推出在Heroku這個程序?
好吧,進步..非常感謝..移動'var testColl = db.collection('test');'回調內部使它本地,雖然,導致不同的ReferenceError ..如何將整個應用程序訪問testColl變量? – StackThis
我用一些想法編輯了我的答案。它不適合作爲評論。 – ZachRabbit