我有一个简单的方法,它应该将服务器上的所有可用方法返回给客户端,但返回的响应是一个空对象。
客户端:
Meteor.call("servMethods", function(err, res){
if(err){
console.log(err);
}
if(res){
console.log(res);
// logs only:
// Object {}
}
});
服务器:
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] }
}
});
答案 0 :(得分:0)
服务器端方法只能将具有EJSON功能的值返回给客户端。函数不具有EJSON功能,因此它们会从结果对象中过滤掉。
如果要将所有可用方法名称的列表发送到客户端,请自行过滤掉这些功能,例如:
"servMethods": function() {
return _.keys(Meteor.default_server.method_handlers);
},