6

我创建了测试 Meteor 应用程序,我发现可以使用客户端上的开发工具查看整体代码(服务器端也是如此)。测试应用程序(在浏览器中):

 (function(){ if (Meteor.isClient) {
      Template.hello.greeting = function () {
        return "Welcome to test_app.";
      };

      Template.helo.events({
        'click input' : function () {
          // template data, if any, is available in 'this'
          if (typeof console !== 'undefined')
            console.log("You pressed the button");
        }
      });
    }

    if (Meteor.isServer) {
      Meteor.startup(function () {
        // code to run on server at startup
      });
    }

    }).call(this);

这是设计使然吗?服务器端代码可以留在服务器上吗?

4

1 回答 1

13

如果你想在服务器上保留服务器端代码,你必须重组你的应用程序。

在应用程序的根目录中创建这些目录:

  • /server - 存储仅在服务器上运行的所有内容
  • /client - 存储仅在客户端上运行的所有内容
  • /public/ - 存储应该在 at 中可访问的任何内容http://yoursite/(即图像、字体)。如果您在其中放置图像a.jpg/public则可以在http://yoursite/a.jpg

一旦你使用了这个结构,你就不必再使用if(Meteor.isServer) {..}orif(Meteor.isClient) {..}条件了,因为它们会在正确的地方运行。

当您将文件放在流星应用程序的根目录中时,它们将在客户端服务器上运行,因此这就是文件未更改的原因,并且其中的所有内容if(Meteor.isServer)都只能在服务器上运行。

在服务器和客户端之间共享代码是设计的并且非常有帮助,尽管它对客户端和服务器都是可见的

于 2013-08-09T10:07:00.060 回答