Javascript 使用Meteoric部署Meteor.js,MongoError:auth失败
使用Meteoric启动meteor应用程序连接到启用了auth的mongodb服务器时,首先设置变量: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
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,或者继续关注它