2013-03-10 55 views
6

Tôi có một hình thức và trình chức năng trong client tập tin của tôi:Server-side validation dữ liệu trong Meteor

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(); 
     } 
} 

đó làm việc khá tốt mặc dù - đó là KHÁCH HÀNG bên xác nhận => không an toàn.

Làm cách nào để triển khai kiểm tra xác thực "sao lưu" trong tệp máy chủ của tôi? (+ câu hỏi thưởng: làm cách nào để đặt hẹn giờ sao cho khi bạn đã gửi, bạn cần đợi X giây trước khi gửi lại?)

Trả lời

2

Bạn có thể sử dụng http://docs.meteor.com/#deny (Bạn có thể sử dụng cho phép nhưng có thể dễ dàng hơn để đặt công cụ xác nhận trong một từ chối riêng biệt) như từ chối sẽ ghi đè cho phép trong trường hợp nó không nên được chèn:

Nó hoạt động như một phương pháp sao lưu trên máy chủ ngay trước khi được chèn vào.

Với bộ sưu tập tin nhắn của bạn

server 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); 
    } 
); 

Note: Quay trở lại sai từ chối có nghĩa là không từ chối. Để từ chối cập nhật, bạn phải trả về true.

+0

cảm ơn! điều đó có nghĩa là: 'lists.deny ({ update: function() { return false; } });' rằng tất cả các bản cập nhật đều bị vô hiệu? (doesnt work: /) –

+0

để từ chối tất cả các bản cập nhật bạn cần trả về 'true' thay vào đó,' false' có nghĩa là bạn không muốn từ chối nó. Cái nào không hoạt động được cái tôi đăng? – Akshat

+0

ah vâng, đúng, xin lỗi tôi đã trộn lẫn từ chối/cho phép .. (không, của tôi, tôi thử của bạn bây giờ nhưng tôi chắc chắn nó sẽ làm việc) –

Các vấn đề liên quan