通过模板事件将数据插入集合:需要安全问题和回调吗?

时间:2015-09-30 21:06:59

标签: javascript meteor

我通过使用模板的更改事件来插入一些数据有两个问题:

  1. 当我考虑安全问题时,这是插入新数据的正确方法吗?或者我是否必须在服务器上创建方法?
  2. 我认为插入需要一些时间,因此newElementId不能立即使用。正确?所以想我确实需要一种回调。这将取决于第一个问题的答案:如果我必须将insert()放在服务器端,我必须将新ID发送到Route.go的客户端
  3. 事件

    Template.createElement.events({
        'change input': function(event, template) {
            var collection = event.target.value,
                route      = event.target.dataset.route
                title      = 'Title';
    
            newElementId = window[collection].insert({ title: title }, function(error) { if(error) console.warn(error); });
            Router.go(route, { _id : newElementId });
        }
    });
    

1 个答案:

答案 0 :(得分:1)

您可以插入或使用Method.Call

服务器端,两者都可以控制安全性。

如果你去插入路线,那么该项目将立即在你的收藏中,它将与服务器同步(服务器可以拒绝它,然后它也将从客户端删除)

如果你去Method.call,它将首先插入服务器,然后同步回客户端。所以它可能会比第一种方法晚一点出现。我倾向于发现这种方法是一种更健壮的方法来控制安全性和进行部分更新。

您不需要任何回调,所有内容都应该被动地更新。