我想我错过了一些简单的事情。我已将Meteor应用程序部署到两个站点:
http://servyc.meteor.com
http://servyc-9594.onmodulus.net/
在这两种情况下,似乎数据库都不会向客户端发送数据。例如,如果您在网站上注册并发布要约或请求,则它不会显示在主页的底部,它应该显示在主页的底部。我无法检查数据是否实际为servyc.meteor.com
发布了。但我可以检查servyc-9594.onmodulus.net
,数据确实已输入数据库(托管广告mongohq
)。
奇怪的是,当我在Mac上运行时,此网站正常工作:数据被发布并被发送到客户端。我部署时是否需要做一些特别的事情?在没有特殊设置的情况下部署时,Meteor.subscribe()
命令可能无效?我觉得奇怪的是,对于模数主机,数据进入数据库但没有被发送出去。
干杯,
答案 0 :(得分:0)
从您看来,您还没有处理客户端上尚未提供数据的情况。
我尝试登录,显示您的订阅/发布功能的工作正常。如果你检查你的javascript控制台,你会看到一些关于某些内容未定义的错误。
原因是当流星在浏览器上加载时,所有集合都是空的。在显示数据时,您需要考虑到这一点,以使其为空,而不是读取内容,例如
var myDocument = Docs.findOne();
return myDocument.date;
如果您最初执行此类操作myDocument
不存在,则它仍然为空。几秒钟后,当数据最终从客户端准备就绪时,它将可用。您只需处理此案例而不会导致错误。
这发生在远程站点而不是本地mac上,因为这些站点存在额外的延迟,因此在本地mac上可能不会发生,因为数据已经如此快速地可用。但是在远程站点上,它需要一些额外的时间,因为它远离您的计算机。