0

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

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

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

奇怪的是,当我在 Mac 上运行该站点时,它运行良好:数据被发布并发送到客户端。部署时需要做一些特别的事情吗?也许Meteor.subscribe()如果没有一些特殊设置,部署时命令可能无效我觉得奇怪的是,对于模数主机,数据进入数据库但没有发送出去。

干杯,

4

1 回答 1

0

从看起来你还没有处理客户端上还没有数据的情况来看。

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

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

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

如果你做这样的事情最初myDocument不存在,它仍然是空的。当数据最终从客户端准备好时,它将在几秒钟后可用。您只需要处理这种情况而不会导致错误。

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

于 2013-10-28T17:24:01.763 回答