0

我有一个使用命令在流星托管上发布的应用程序:

meteor deploy spyermeteor

该应用程序在http://spyermeteor.meteor.com上呈现,但在客户端不使用任何数据。

如果我执行以下操作,我可以看到该应用程序在服务器端运行良好:

meteor logs spyermeteor 

然后我检查浏览器控制台,我发现我可以访问数据库:

Annonces.find().count() // per exemple

您如何解释反应性在客户端不起作用?也许我的概念有问题,但在我的计算机(Windows)和虚拟机(Linux debian)上它运行良好。欢迎任何帮助。

源代码可在此处获得http://www.github.com/Rebolon/spyerMeteor

4

1 回答 1

1

在生产模式下,所有文件都被连接并缩小为一个 javascript 文件。如果您的代码中的某处甚至存在轻微的语法错误,则其余代码将不会执行。

查看您部署的站点,您必须拆分客户端和服务器端代码。我收到一个错误

Uncaught ReferenceError: Npm is not defined 

这意味着仅在服务器上运行,但您使用的代码Npm正在客户端上运行,而它应该只在服务器上运行。它还会在生产模式下导致错误,但由于文件未连接和缩小,因此错误不会阻止其他 javascript 文件运行。

您可以将此代码移动到文件中/serverif(Meteor.isServer) {..}块中

看起来您的代码也是为 <= Meteor 0.5.9 编写的。在部署应用程序之前,您应该将本地实例升级到 0.6.2 并在 js 控制台中查找所有这些异常。

于 2013-04-19T09:58:59.303 回答