2016-08-02 119 views
5

我想知道如何连接到Meteor的外部MongoDB实例。如何连接到Meteor的外部MongoDB实例?

我加入这个环境

Meteor.startup(function() { 
process.env.MONGO_URL = 'mongodb://[UN]:PW]@[host]:[port]/meteorTest' 
}); 

,但仍然将数据从本地数据库的到来。

我想将所有集合从我的本地数据库移动到此外部数据库。我阅读了所有的教程,它告诉我要设置这个evn变量,但没有任何真正的工作。我如何测试其连接与否?

+0

[链接](http://basvdijk.com/meteor-with-external-mongodb/) - 参考给定的链接,希望你能找到你的答案 – Sampad

+0

我已经阅读过这个..但不能做出任何需要将代码行添加到终端或流星启动的任何地方?如果我在启动时添加它,则会抛出错误,如果我在终端中添加它,它会显示导出不是命令 –

+0

在终端中尝试它 – Sampad

回答

15

以我自己的经验;我需要在启动meteorjs服务器应用程序之前设置环境变量。为此,您需要在调用meteor或为系统上运行meteor应用程序的配置文件预设环境时,在命令行中传递环境变量。

所以,你会用这种命令的启动您的应用程序:

MONGO_URL='mongodb://user:[email protected]:12345/' meteor 

您还应该确保MongoDB是可达的和您的用户凭据是正确的!我假设你正在尝试使用远程MongoDB实例在本地机器上运行流星。

在Windows

您必须创建您的流星应用程序文件夹来调用环境变量的批处理文件。有这样一个例子在这里:https://stackoverflow.com/a/29833177/1997579

+0

它将此错误引发到终端 'MONGO_URL'未被识别为内部或外部命令, 可操作程序或批处理文件。 –

+0

所以你在一台Windows机器上?如果是这样,请看到这个答案:http://stackoverflow.com/a/29833177/1997579 – Katalyst

+0

我创建了一个名为'startup.bat'的.bat文件,但仍然在运行时MONGO_URL ='mongodb:// user :[email protected]:12345 /'流星 它抛出相同的错误 –

0

来看,它在命令提示符:

"MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor" 

或 保存的网址,run.sh文件项目文件夹,运行流星

3

我不喜欢使用大的重复命令,我正在寻找一种解决方案,我将在每次启动我的流星应用程序时设置嵌入了一些东西的变量; MONGO_URL将自动设置为环境。所以这就是我所做的:

在的package.json文件我换成如下的启动参数:

"scripts": { 
    "start": "MONGO_URL=mongodb://username:[email protected]_url:portnumber/dbname meteor run" 
    }, 

现在我想运行我的应用程序每一次;我运行npm start而不是meteormeteor run

注意:这样做有一个缺点。如果将数据库凭证放入package.json文件并将此文件添加到版本控制中,则会暴露您的数据库凭据。

相关问题