Meteor,延迟更新数据库但显示页面中的更改

时间:2016-02-26 16:41:39

标签: meteor

我想延迟调用更新数据库一两分钟,所以如果用户想要进行编辑,她可以。类似于堆栈Overflow中的注释,您可以在一段时间后进行编辑。

我确实在submit事件中更新了Template.CurrentData,但它没有被动反应。当用户刷新时,它会消失。

  Template.currentData().comments.push({ text : event.target.textValue.value})

我不允许客户端更新数据库。

可能会更新minimongo并禁止以某种方式更新到DB ???然后用Meteor.timeOut调用更新数据库的服务器方法??

1 个答案:

答案 0 :(得分:1)

XY问题在这里。您要做的是保存提交日期,并在尝试更新时进行检查。以下是使用allow挂钩的示例。

// initial insert
Comments.insert({
  content: 'Sono un gatto moretto.',
  createdAt: new Date()
});

Comments.allow({
  update: function (userId, document, fields, modifier) {
    const twoMinutes = moment(document.createdAt).add(2, 'minutes');
    if (moment().isAfter(twoMinutes)) {
      return false;  // reject if it's after two minutes.
    }
    // I'm sure you'll want to do other checks here
  }
});