使用MongoLab在Heroku上部署Node.js应用程序时出现问题

时间:2014-09-26 01:00:04

标签: node.js mongodb heroku express mlab

我正在尝试将一个非常简单的应用程序部署到Heroku。应用程序的代码可以在Ray Wenderlich的站点上找到,这里:http://www.raywenderlich.com/61078/write-simple-node-jsmongodb-web-service-ios-app每当我尝试让Heroku编译代码时,我都会遇到同样的错误......

var mongoHost = "mongodb://username:password@ds041140.mongolab.com:41140/heroku_app23491233";
var mongoPort = 41140; 
var collectionDriver;

var mongoClient = new MongoClient(new Server(mongoHost, mongoPort)); //B
mongoClient.open(function(err, mongoClient) { //C
  if (!mongoClient) {
      console.error("Error! Exiting... Must start MongoDB first");
      process.exit(1); //D
  }
  var db = mongoClient.db("heroku_app23491233");  // E
  collectionDriver = new CollectionDriver(db); //F
});

当我输入heroku logs时,我得到的错误来自if (!mongoClient)以上......

app[web.1]: Error! Exiting... Must start MongoDB first

我确定问题出在我尝试连接到MongoLab数据库的某个地方。我已经从MongoLab复制了URI,并且我已经使用正确的凭据创建了一个用户。

我可以使用非常相似的代码连接到localhost,所以我不确定这个例子中出了什么问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

基于the docs,我最好的猜测是,因为Server构造函数需要第一个参数只包含主机名(就MongoLab而言,{{1} }})。但是,我认为您可以将连接字符串传递给ds041140.mongolab.com

MongoClient.connect

Documentation Page For MongoClient

希望这有帮助!