我是 mongodb 和 node.js 的新手。我有一个简单的 node.js 应用程序,为了运行我必须运行命令
mongod
确保 mongodb 正在运行。在本地这工作正常。
现在我要搬到heroku,我创建了一个Procfile,我在其中声明:
web: node http.js
所以这负责启动 node.js。
现在我该如何调用命令
mongod
在heroku上?
更新
在 Heroku 要求之前,这是我用来初始化我的 mongodb 的方式:
var mongo = require('mongodb');
var Server = mongo.Server,
Db = mongo.Db,
BSON = mongo.BSONPure,
ObjectID = mongo.ObjectID;
var server = new Server('localhost', 27017, {auto_reconnect: true});
db = new Db('sampledb', server);
db.open(function(err, db) {
if(!err) {
console.log("Connected to 'sampledb' database");
db.collection('sample', {strict:true}, function(err, collection) {
if (err) {
console.log("The 'sample' collection doesn't exist. Creating it with sample data...");
populateDB();
}
});
}
});
为了适应heroku,这里是我初始化mongodb的方式:
var mongo = require('mongodb');
var Server = mongo.Server,
Db = mongo.Db,
BSON = mongo.BSONPure,
ObjectID = mongo.ObjectID;
var mongoUri = process.env.MONGOLAB_URI ||
process.env.MONGOHQ_URL ||
'mongodb://localhost/sampledb';
mongo.Db.connect(mongoUri, function (err, db) {
db.collection('sample', function(er, collection) {
if (err) {
console.log("The 'sample' collection doesn't exist. Creating it with
sample data...");
populateDB();
}
});
});
现在这会引发错误,因为无法识别 db。我想我在这里遗漏了一个概念问题,我对这个世界都很陌生。
任何帮助表示赞赏。