2012-04-16 110 views
0

我有一個非常「典型」安裝程序(我使用RailwayJS)定義連接字符串

模式:

customSchema(function(){ 
    // Initialize Mongo DB 
    var mongoose = require('mongoose'), 
     Schema = mongoose.Schema; 

    mongoose.connect('mongodb://localhost/mydb'); //todo: needs to come from connection or something?! 

    var MyModel = new Schema({ 
     name : String, 
     email : String, 
     something : String 
    }); 
}); 

我的問題是,我怎麼能指定連接要使用的字符串?

我應該將mongoose.connect部分移出到我的配置部分嗎?

回答

0

這是我喜歡用:

var mongourl = process.argv[2] || process.env.NODE_DB || 'mongodb://anywhere/db'; 

記住更改NODE_DB到whatev呃你的環境變量的名字。

請注意,我還允許傳遞命令行參數(在使用Cloud9運行應用程序時非常有用,因爲這種令人敬畏的服務不允許使用env變量)。索引是2,因爲命令是node app.js mongodb://address,請記住在需要時進行調整。

+0

如何/在哪裏更改NODE_DB? 我正在使用heroku ... – Alex 2012-04-16 17:40:25

+0

以下是關於如何設置env變量(非常簡單)的[Heroku doc](https://devcenter.heroku.com/articles/nodejs#setting_node_env)。在你的情況下,只需使用'$ heroku config:add NODE_DB = mongodb:// localhost/mydb' 注意:如果您使用的是Heroku,請查看[MongoHQ附加組件](https://addons.heroku .com/mongohq),所以你可以嘗試一個免費的,易於安裝和維護mongodb服務。 – 2012-04-17 08:06:04