Meteor.js:部署在meteor.com和modulus.io服务器上时未显示已提交的帖子,即使我的计算机上的一切正常

时间:2013-10-28 14:56:34

标签: javascript mongodb meteor

我想我错过了一些简单的事情。我已将Meteor应用程序部署到两个站点:

http://servyc.meteor.com
http://servyc-9594.onmodulus.net/

在这两种情况下,似乎数据库都不会向客户端发送数据。例如,如果您在网站上注册并发布要约或请求,则它不会显示在主页的底部,它应该显示在主页的底部。我无法检查数据是否实际为servyc.meteor.com发布了。但我可以检查servyc-9594.onmodulus.net,数据确实已输入数据库(托管广告mongohq)。

奇怪的是,当我在Mac上运行时,此网站正常工作:数据被发布并被发送到客户端。我部署时是否需要做一些特别的事情?在没有特殊设置的情况下部署时,Meteor.subscribe()命令可能无效?我觉得奇怪的是,对于模数主机,数据进入数据库但没有被发送出去。

干杯,

1 个答案:

答案 0 :(得分:0)

从您看来,您还没有处理客户端上尚未提供数据的情况。

我尝试登录,显示您的订阅/发布功能的工作正常。如果你检查你的javascript控制台,你会看到一些关于某些内容未定义的错误。

原因是当流星在浏览器上加载时,所有集合都是空的。在显示数据时,您需要考虑到这一点,以使其为空,而不是读取内容,例如

var myDocument = Docs.findOne();
return myDocument.date;

如果您最初执行此类操作myDocument不存在,则它仍然为空。几秒钟后,当数据最终从客户端准备就绪时,它将可用。您只需处理此案例而不会导致错误。

这发生在远程站点而不是本地mac上,因为这些站点存在额外的延迟,因此在本地mac上可能不会发生,因为数据已经如此快速地可用。但是在远程站点上,它需要一些额外的时间,因为它远离您的计算机。