更改文件夹结构时,不会运行排行榜示例

时间:2013-12-11 10:36:27

标签: javascript meteor

这次我学习meteor.js:D 我从榜样中学习。 我现在使用的示例是排行榜:http://www.meteor.com/examples/leaderboard 从本机示例项目我有这个文件夹结构:

leaderboard
|-.meteor
|-leaderboard.css
|-leaderboard.html
|-leaderboard.js

我现在尝试了解meteor.js文件夹结构,我尝试移动到这样:

leaderboard
|-.meteor
|-client
    |--leaderboard.css
    |-leaderboard.html
    |-leaderboard.js
|-public
|-server

我没有更改任何代码,只是创建文件夹并移动 然后我开始流星并访问localhost:3000 但网络没有用。 帮助我如何解决这个问题,请告诉我如何使用私人文件夹:D

感谢

更新 我尝试按照指示。 我用领导更新了我的服务器文件夹。

Meteor.startup(function () {
    if (Players.find().count() === 0) {
      var names = ["Ada Lovelace",
                   "Grace Hopper",
                   "Marie Curie",
                   "Carl Friedrich Gauss",
                   "Nikola Tesla",
                   "Claude Shannon"];
      for (var i = 0; i < names.length; i++)
        Players.insert({name: names[i], score: Math.floor(Random.fraction()*10)*5});
    }
  });

/client中的我的leaderboard.js我也更新了no if(Meteor.isClient) 这是我的错误:

Your app is crashing. Here's the latest log.

W2036-17:49:01.658(7)? (STDERR) D:\Meteor\leaderboard\.meteor\local\build\programs\server\boot.js:195
W2036-17:49:01.661(7)? (STDERR) }).run();
W2036-17:49:01.662(7)? (STDERR)    ^
W2036-17:49:01.663(7)? (STDERR) ReferenceError: Players is not defined
W2036-17:49:01.665(7)? (STDERR)     at app/server/leadership.js:2:9
W2036-17:49:01.666(7)? (STDERR)     at D:\Meteor\leaderboard\.meteor\local\build\programs\server\boot.js:168:61
W2036-17:49:01.668(7)? (STDERR)     at Array.forEach (native)
W2036-17:49:01.669(7)? (STDERR)     at Function._.each._.forEach (C:\Users\yoza\AppData\Local\.meteor\tools\e42f0b78d3\lib\node_modules\underscore\underscore.js:79:11)
W2036-17:49:01.671(7)? (STDERR)     at D:\Meteor\leaderboard\.meteor\local\build\programs\server\boot.js:168:5
=> Exited with code: 8
=> Your application is crashing. Waiting for file change.

1 个答案:

答案 0 :(得分:1)

leadership.js中的代码也需要放在/server文件的.js文件夹中。

if(Meteor.isClient){内的所有代码都只能在客户端上运行。所以应该进入/client文件夹。当它在客户端文件夹中时,它不需要if(Meteor.isClient){条件检查。

同样if(Meteor.isServer) {中的内容属于/server文件夹。

它不起作用,因为/client中的文件只能在客户端运行,并且有服务器端部分,例如需要在服务器上运行的集合。