定义连接字符串
问题描述:
我有一个非常“典型”安装程序(我使用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部分移出到我的配置部分吗?
答
这是我喜欢用:
var mongourl = process.argv[2] || process.env.NODE_DB || 'mongodb://anywhere/db';
记住更改NODE_DB
到whatev呃你的环境变量的名字。
请注意,我还允许传递命令行参数(在使用Cloud9运行应用程序时非常有用,因为这种令人敬畏的服务不允许使用env变量)。索引是2,因为命令是node app.js mongodb://address
,请记住在需要时进行调整。
如何/在哪里更改NODE_DB? 我正在使用heroku ... – Alex 2012-04-16 17:40:25
以下是关于如何设置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