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 集合

Meteor 无法连接到 MongoDB

Meteor - 如何在 MongoDB 集合中查找/获取对象并使用方法将其推送到另一个集合中?

在 Mac 上,Meteor 和 MongoDB 的最佳数据 GUI 是啥?

使用 Meteor 方法从 MongoDB 下载大量文档