connect-mongodb和mongolab

时间:2013-10-04 08:09:12

标签: node.js session express mlab

我正在使用heroku mongolab插件为我的expressjs网络应用程序。如何将process.env.MONGOLAB_URI env变量与connect-mongodb一起使用?

1 个答案:

答案 0 :(得分:0)

根据Heroku docs,MongoLab单节点计划的URI格式为:

mongodb://dbuser:dbpass@host:port/dbname

您可以使用正则表达式(和/或其他字符串函数)来提取创建MongoStore所需的变量:

function createDBSettings(mongoLabURI) {
  var dbSettings = {},
      regexp = /^mongodb:\/\/(\w+):(\w+)@(\w+):(\w+)\/(\w+)$/,
      matches = regexp.match(mongoLabURI);

  dbSettings.dbname = matches[5];
  dbSettings.host = matches[3];
  dbSettings.port = matches[4];
  dbSettings.username = matches[1];
  dbSettings.password = matches[2];

  return dbSettings;
}

var MongoStore = require('connect-mongo')(express);
var store = new MongoStore(createDBSettings(process.env.MONGOLAB_URI));

您应该能够对群集计划URI执行相同的操作。


查看node-mongodb-native源代码。 URI解析发生在MongoClient.connect()