使用Meteor的settings.json连接到本地MongoDB

时间:2015-04-27 15:36:48

标签: mongodb meteor

我将Meteor应用程序中的一些管理/管理功能分解为另一个新功能,以减少客户端应用程序大小/帮助限制访问。我还在localhost和生产中单独安装了MongoDB。

我已经能够在不同的端口上运行每个应用程序,并在启动应用程序时连接到数据库传递环境变量:

# App 1
MONGO_URL=mongodb://localhost:27107/appDB meteor 
# App 2
MONGO_URL=mongodb://localhost:27107/appDB meteor --port 4000

当然,我想在项目根目录中使用settings.json来传递这些变量而不必指定它们(这里是App 2的settings.json) :

{
    "env": {
        "PORT": 4000,
        "MONGO_URL": "mongodb://localhost:27017/appDB"
    }
}

使用meteor run --settings settings.json传递这些变量。但是,Meteor不会识别设置文件。我可能会出错的任何想法?

更新1: @Apendua非常友好地告诉我settings.json根本不支持这种行为。改为设置bash别名。

更新2: @AshHimself指出Galaxy可以这种方式识别环境变量,但core Meteor docs如果在本地环境中工作则不是很清楚。

3 个答案:

答案 0 :(得分:2)

我使用bash脚本使用本地MongoDB运行我的Meteor应用程序。

转到Meteor项目目录并在命令行(BASH)中写入:

echo 'MONGO_URL=mongodb://localhost:27017/meteorprojectname meteor run' > run.sh

更改脚本的权限,以便您可以在不使用sudo的情况下运行它:

sudo chmod 777 run.sh

现在您可以使用命令运行项目:

./run.sh

更多信息:http://meteor.hromnik.com/blog/meteor-run-without-creating-local-mongo-database

答案 1 :(得分:0)

这对我很有用。我要做的唯一改变就是只添加执行权限,然后将.sh从文件名中删除。

echo 'MONGO_URL=mongodb://localhost:27017/meteorprojectname meteor run' > run
sudo chmod +x run
./run

答案 2 :(得分:0)

它不像shell脚本那样花哨,但是...这个衬里别名也可以使用。

alias <myapp>="export MONGO_URL=mongodb://<mongohost>:<port>/<database>; meteor run"

当然,将括号中的所有内容替换为您的口味和欢乐。