我为我的 expressjs Web 应用程序使用 heroku mongolab 插件。如何将process.env.MONGOLAB_URI
env 变量与connect-mongodb一起使用?
问问题
467 次
1 回答
0
根据Heroku 文档,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()上。
于 2013-10-04T08:28:52.947 回答