0

我是 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。我想我在这里遗漏了一个概念问题,我对这个世界都很陌生。

任何帮助表示赞赏。

4

1 回答 1

2

您不会mongod在 heroku 上调用命令。

您将 addons.heroku.com 中的一个 mongo 附加组件添加到您的应用程序,然后让您的代码连接到由附加组件提供程序导出到您的应用程序的配置变量中的凭据。

于 2013-05-20T03:02:28.387 回答