2012-04-16 76 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