开发期间的流星自定义mongodb

Posted

技术标签:

【中文标题】开发期间的流星自定义mongodb【英文标题】:Meteor custom mongodb during development 【发布时间】:2012-06-27 05:17:59 【问题描述】:

我将如何使用(实时运行的)MongoDB 来开发另一个流星应用程序?在运行meteor之前,我尝试修改(.meteor/server/server.js)并指定MONGO_URL无济于事。

这没有使用捆绑的 MongoDB,它必须是一个单独的/自定义的(基本上是另一个流星实例)。

这可以用deploy method 来完成,但是在开发过程中普通的meteor run 呢?

更新:这确实有效,但是客户端实现似乎有点小故障

【问题讨论】:

我也有同样的问题,但在这里找不到答案。实际上我没有找到 ./meteor/server 文件夹,但是 ./meteor/local/build/server/ 中的 server.js 将在您重新启动流星服务器时始终重建。 【参考方案1】:

如Unofficial Meteor FAQ 中所述,您可以调用 Meteor,并将 MONGO_URL 环境变量设置为所需的实例:

MONGO_URL=mongodb://localhost:27017 meteor

如果您的 MongoDB 处理多个数据库,您可以通过将其附加到 URL 来指明使用哪一个:

MONGO_URL=mongodb://localhost:27017/mydb meteor

您甚至可以通过运行以下命令来阻止 Meteor 在开发中启动本地 Mongo 实例:

MONGO_URL=none meteor

【讨论】:

有没有办法将变量存储在项目的某处?总是输入MONGO_URL=... 来启动流星似乎很愚蠢。如果可以在使用meteor run 时以某种方式获取它会很好。 (我知道,第一世界的问题..) @archiehicox 不需要。只需将该 env 变量放到您的 ~/.profile 文件中以在用户范围内传播,或在 /etc/environment 中进行系统范围内传播。 @Shehi 这是一个好方法。你是对的,它不是特定于项目的。【参考方案2】:

我发现你不应该忘记指定要连接的数据库。在我的例子中,我想要第二个 Meteor 实例从第一个实例连接到开发 MongoDB 服务器。

Meteor 使用 HTTP 端口 +2 用于开发 MongoDB,以及数据库 'meteor',因此启动第二个服务器的正确方法是:

MONGO_URL=mongodb://localhost:3002/meteor meteor --port=3800

【讨论】:

实际上是 HTTP 端口 +1(至少现在是)。您可以通过调用meteor mongo 连接到默认数据库来验证这一点。所以默认数据库mongodb://localhost:3001/meteor

以上是关于开发期间的流星自定义mongodb的主要内容,如果未能解决你的问题,请参考以下文章

Docker 网络详解之使用自定义网络实现不同网络间的网络连通

自定义 MongoDB Spring 数据存储库

自定义UDF函数,从hive保存到mongodb

GridFS(MongoDB)的自定义存储系统?

为啥MongoDB在插入自定义id值时将_id加一

MongoDb学习 自定义配置mongodb连接