Meteor后端代码是否始终在客户端可用?

时间:2013-08-09 08:28:32

标签: javascript node.js meteor

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

 (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);

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

1 个答案:

答案 0 :(得分:13)

如果您想在服务器上保留服务器端代码,则必须重新构建应用程序。

将这些目录放在应用程序的根目录中:

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

使用此结构后,您不必再使用if(Meteor.isServer) {..}if(Meteor.isClient) {..}条件,因为它们会在正确的位置运行。

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

设计并且在服务器和客户端之间共享代码非常有帮助,尽管客户端和客户端都可以看到它。服务器