这次我学习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.
答案 0 :(得分:1)
leadership.js
中的代码也需要放在/server
文件的.js
文件夹中。
if(Meteor.isClient){
内的所有代码都只能在客户端上运行。所以应该进入/client
文件夹。当它在客户端文件夹中时,它不需要if(Meteor.isClient){
条件检查。
同样if(Meteor.isServer) {
中的内容属于/server
文件夹。
它不起作用,因为/client
中的文件只能在客户端运行,并且有服务器端部分,例如需要在服务器上运行的集合。