MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序
Posted
技术标签:
【中文标题】MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序【英文标题】:MongoDB / Meteor / Export MONGO_URL to deployed applications 【发布时间】:2014-03-25 03:04:51 【问题描述】:我尝试按照meteor.js 文档中的说明导出一个settings.json,以便将我的Meteor.js 应用程序与外部MongoHQ 数据库连接起来:
"env":
"MONGO_URL" : "mongodb://xxx:xxxx@troup.mongohq.com:10037/xxx"
使用命令:
mrt deploy myapp.meteor.com --settings settings.json
它甚至不起作用,我的应用程序继续连接 Meteor.app 提供的本地数据库! 我的 MONGO_URL 环境变量没有改变。
是否有任何解决方案可以导出我的 MONGO_URL 环境变量以连接外部 MongoDB 数据库?
我看到在使用 heroku 或模数时可以更改它,那么标准部署 meteor.com 解决方案呢?
【问题讨论】:
定义“甚至不起作用”。这很不明确 拥有 settings.json 文件是不够的,您需要使用meteor --settings settings.json
运行,而使用 meteor.com deploy 则无法做到这一点。
mrt deploy myapp.meteor.com --settings settings.json ***************** 我在我的应用中部署了该 settings.json。跨度>
【参考方案1】:
您无法将自己的 MONGO_URL
与 Meteor 部署托管一起使用。
Meteor 部署托管使用 Mailgun 处理电子邮件(如果您使用它),并为那里部署的所有应用程序提供 mongodb。
可以更改MAIL_URL
,但不能使用不同的mongodb。
你可以试试,虽然我不确定它是否有效:
把它放在你的服务器端代码中的某个地方
process.env.MONGO_URL = '..';
【讨论】:
在服务器启动之前,我已经尝试在 server.js 文件的顶部手动设置它。 是的,看起来不可能。如果您想使用自己的 mongo db,则必须自己托管它 有没有办法在meteor.com 上把你的mongo shell 装进去?【参考方案2】:在server
文件夹下创建lib
文件夹并写入:
Meteor.settings = //your settings ;
根据文档,名为lib
的文件夹中的所有内容都将在任何内容之前执行,因此我们确保在此之前不会执行任何代码,从而防止错误访问不存在的指标。
如果您已经在使用 lib
文件夹,您必须有权在其他任何可能冲突的内容之前运行,请查看有关它的文档。
享受吧。
【讨论】:
肯定要在 Meteor 启动之前连接到数据库(?) 是的,它需要。这个 hack 对我有用,因为我存储 API 密钥并且我想在 *.meteor.com 中使用我的开发配置文件 能否请您发布一个示例如何使用 process.env 变量这种方法?【参考方案3】:应用程序配置包(内置meteor包)包含设置mongo_url的代码。在这里查看我的答案https://***.com/a/23485319/2391620
【讨论】:
【参考方案4】:关于 Unoficial Meteor.js 的常见问题解答,这不可能很容易做到,这可能会很棘手。
所以我注册了一个模数帐户,使用 MongoHQ 数据库。 它现在有效。
【讨论】:
【参考方案5】:只有 settings.json 文件是不够的,你需要运行
meteor --settings settings.json
meteor.com 部署无法做到这一点。
【讨论】:
以上是关于MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序
Meteor - 如何在 MongoDB 集合中查找/获取对象并使用方法将其推送到另一个集合中?