Javascript 使用Meteoric部署Meteor.js,MongoError:auth失败

Javascript 使用Meteoric部署Meteor.js,MongoError:auth失败,javascript,node.js,mongodb,meteor,meteorite,Javascript,Node.js,Mongodb,Meteor,Meteorite,使用Meteoric启动meteor应用程序连接到启用了auth的mongodb服务器时,首先设置变量: export MONGO_URL = mongodb://admin:password@localhost:27017/myAppDb Meteoric的配置如图所示: PRE_METEOR_START="export ENVIRONMENT=prod MONGO_URL=mongodb://admin:password@localhost:27017/myAppDb;" 然后使用命令m

使用Meteoric启动meteor应用程序连接到启用了auth的mongodb服务器时,首先设置变量:

export MONGO_URL = mongodb://admin:password@localhost:27017/myAppDb
Meteoric的配置如图所示:

PRE_METEOR_START="export ENVIRONMENT=prod MONGO_URL=mongodb://admin:password@localhost:27017/myAppDb;"
然后使用命令
meteoric deploy
启动meteor,出现错误:

MongoError: auth fails
问题:为什么meteor无法使用
meteoric deploy
访问mongodb,但当使用
mrt
启动meteor时,mongodb访问工作正常

我注意到Meteoric脚本包含以下代码,
-z
标志做什么

if [ -z "$MONGO_URL" ]; then
    MONGO_URL=mongodb://localhost:27017/$APP_NAME

-z表示“测试以下字符串的长度是否为零”,用于测试bash脚本中的空字符串。您应该知道,在开发模式(即使用“meteor/mrt”命令)下,meteor负责启动自己的MongoDB守护程序并连接到它,但在生产模式下(将应用程序捆绑成常规的Node.js应用程序后),情况并非如此,您必须自己处理Mongo,因此,您可能会被欺骗,认为Mongo部分是正常的,但它可能不是,因为您显然有一个身份验证失败错误:您确定您的凭据?感谢
-z
上的提示。当我禁用mongodb的身份验证,使用
mrt
启动meteor并访问3000端口的站点时,它似乎使用了与使用
meteoric deploy
启动时相同的mongodb数据库。凭证是正确的,当mongodb上需要身份验证时,我可以使用Robomongo远程连接到它。您能否尝试将
authSource
添加到您的查询字符串中,例如
mongodb://admin:password@localhost:27017/myAppDb?authSource=admin
可能希望研究这个新项目,而不是使用meteoric,或者继续关注它