2016-04-14 18 views
0

Sunucumdaki tüm kullanılabilir yöntemleri istemciye geri döndüren basit bir yöntem var, ancak yanıt yanıtsız bir nesnedir.Meteor yöntemi, istemcideki ve sunucudaki farklı nesneyi döndürür

Müşteri:

Meteor.call("servMethods", function(err, res){ 
    if(err){ 
    console.log(err); 
    } 
    if(res){ 
    console.log(res); 

    // logs only: 
    // Object {} 

    } 
}); 

Sunucu: sadece müşteriye EJSON-güçlü degerleridir

Meteor.methods({ 
    "met1": function(){ 
    }, 
    "met2": function(){ 
    }, 
    "servMethods": function(){ 
    var methods = Meteor.default_server.method_handlers; 
    console.log(methods); 
    return methods; 

    // logs correctly: 
    // { met1: [Function: met1], 
    // met2: [Function: met2], 
    // servMethods: [Function: servMethods] } 

    } 
}); 

cevap

0

sunucu tarafı yöntemleri. İşlevler EJSON uyumlu değildir ve bu nedenle sonuç nesnesinden filtrelenirler. Örneğin, fonksiyonları kendini filtre, mevcut tüm yöntemle müşteriye isimleri listesini göndermek istiyorsanız

:

"servMethods": function() { 
    return _.keys(Meteor.default_server.method_handlers); 
}, 
+0

Müthiş, bu çok gelecek yöntemleri yazma bana yardımcı olmalıdır. Merak ediyorum, belki de bir metodun ... asenkron sonucu meselesidir. Bu kodu kontrol ettim ve şimdi beklendiği gibi çalışıyor. –

İlgili konular