6

クライアントファイルにフォームと送信機能があります。

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 秒後に再送信する必要があるようにするにはどうすればよいですか? )

4

1 に答える 1

2

http://docs.meteor.com/#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);
    }
);

: deny から false を返すことは、否定しないことを意味します。更新を拒否するには、true を返す必要があります。

于 2013-03-10T17:30:26.830 に答える