Meteor中的服务器端数据验证

时间:2013-03-10 16:15:04

标签: javascript validation meteor backend

我的客户端文件中有表单和提交功能:

function submitme () {
    var message = $('#daform').serializeJSON();
    message.owner = Meteor.user().username;
    if(!message.description || !message.location.lat || !message.location.lng || !message.mysex || !message.yoursex) {
      return;          
      }
      else
      {
          lists.insert(message);
          console.log("Submitted!");
          $('#daform')[0].reset();
      }
}

虽然效果很好 - 但它是客户端侧验证=>不安全。

如何在我的服务器文件中实施“备份”验证检查? (+红利问题:如何设置计时器,以便在您提交后需要等待X秒再重新提交?)

1 个答案:

答案 0 :(得分:2)

你可以使用http://docs.meteor.com/#deny(你可以使用allow但是可能更容易将验证内容放在单独的deny中),因为deny会在不应该插入的情况下覆盖allow:

它在插入之前就像服务器上的备份方法一样。

收集邮件

服务器Js

message.deny({
    insert: function (userId, doc) {
        return (!doc.description || !doc.location.lat || !doc.location.lng || !doc.mysex || !doc.yoursex);
    },
    update: function (userId, docs, fields, modifier) {
        return (!doc.description || !doc.location.lat || !doc.location.lng || !doc.mysex || !doc.yoursex);
    }
);

注意:从拒绝返回false意味着不拒绝。要拒绝更新,您必须返回true。