【问题标题】:Understanding new Meteor.Collection了解新的 Meteor.Collection
【发布时间】:2014-09-22 16:58:44
【问题描述】:

我正在尝试通过一本书来学习 Meteor。我遇到的问题是在他使用控制台将数据插入集合的书中。因为我使用的是 Windows,所以我需要在 VPS 上运行。

所以当我把这个 .js 文件放在一起时;

PlayersList = new Meteor.Collection('players');

PlayersList.insert ({
name: 'David',
score: 0,
name: 'Bob',
score: 0,
name: 'Mary',
score: 0,
name: 'Bill',
score: 0,
name: 'Warren',
score: 0,
name: 'Tim',
score: 0
});

现在,每次我更改某些内容时,都会吸引越来越多的玩家。所以看起来它并没有真正创建一个新的集合,而是不断地添加到现有的集合中。我将如何设置它以便我可以与书保持在同一页上?

【问题讨论】:

  • 这是一个错字或等同于{name: 'Tim', score:0}。我想你错过了一个开场 [ 一些 },{ 和一个闭幕 ]
  • 所以他们都应该像 PlayersList.insert({name:'Tim', score:0}) 一样在自己的行上?
  • 我认为,要做不止一个,外部结构需要看起来像一个数组,例如PlayersList.insert([{name:'David', score:0},{name:'Bob',score:0}]); 几个月前我没有做 Meteor。

标签: meteor


【解决方案1】:

问题是每次重新启动应用程序时都会重新执行插入代码。

您只需在服务器上插入一次测试数据,如下所示:

server/startup.js

Meteor.startup(function(){
  // always start from scratch with clean test data, remove this line when
  // debugging is done to stop clearing collection data after every server restart
  PlayersList.remove({});
  if(PlayersList.find().count()===0){
    // insertion code goes here
    var playersNames=["David","Bob",...];
    _.each(playersNames,function(playerName){
      PlayersList.insert({
        name:playerName,
        score:0
      });
    });
  }
});

【讨论】:

    猜你喜欢
    • 2013-04-06
    • 2013-08-19
    • 2014-04-03
    • 2014-03-24
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    相关资源
    最近更新 更多