【发布时间】:2014-04-02 07:30:17
【问题描述】:
我非常接近在 Heroku 上的沙盒环境中使用 MongoDB 插件运行的快速应用程序......
我仍然在日志中看到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 上启动此应用?
【问题讨论】:
标签: node.js mongodb heroku express mlab