-1
我使用heroku mongolab附加功能爲我的expressjs web應用程序。如何使用process.env.MONGOLAB_URI
env變量與connect-mongodb?mongolab連接mongodb
我使用heroku mongolab附加功能爲我的expressjs web應用程序。如何使用process.env.MONGOLAB_URI
env變量與connect-mongodb?mongolab連接mongodb
據Heroku docs,對於MongoLab單節點計劃的URI格式爲:
mongodb://dbuser:[email protected]: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()。