2015-08-09 18 views
5

Tôi đang thực hiện Meteor.call('searchDatabase', keys...) được thực thi bất cứ khi nào người dùng gửi tìm kiếm. Tôi hiện đang chuyển một loạt các từ được gửi có tên là keys. Tuy nhiên, tôi không biết làm thế nào để làm việc cần thiết check(keys, ?) ở phía máy chủ. Ban đầu tôi nghĩ rằng tôi có thể làm keys.forEach(function(element) { check(element, String)}, nhưng tôi vẫn gặp lỗi Did not check() all arguments. Tôi có nên bỏ qua tìm kiếm đã gửi làm chuỗi ban đầu của nó trong cuộc gọi phương thức Meteor và sau đó ngắt nó trên máy chủ không? hoặc có cách nào để kiểm tra các phím đó là một mảng không?Tham số mảng kiểm tra Meteor.call

Trả lời

13

Nếu keys là một mảng các chuỗi, bạn chỉ có thể làm:

check(keys, [String]); 

phương pháp của bạn sẽ giống như thế:

Meteor.methods({ 
    searchDatabase: function(keys) { 
    check(keys, [String]); 
    // add other method code here 
    } 
}) 
+0

Vâng thats những gì tôi đang tìm kiếm! Cảm ơn! – thegreenfrog

0

Như đã trình bày ở đây: https://forums.meteor.com/t/check-object-in-an-array/3355

var subscriptions = [ 
    {/* ... */}, 
    {/* ... */}, 
    {/* ... */} 
]; 

check(subscriptions, Match.Where(function(subscriptions){ 
    _.each(subscriptions, function (doc) { 
    /* do your checks and return false if there is a problem */ 
    }); 
    // return true if there is no problem 
    return true; 
})); 
0

Nếu bạn sử dụng simple-schema, bạn nên thử cách này:

check(keys, [ mySchema ]); 

Bạn có thể tìm hiểu thêm về mô hình kiểm tra trong liên kết này using-the-check-package

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