Meteor.methods()回调错误
Meteor.js上的那段代码出错了: 客户端:Meteor.methods()回调错误,methods,callback,meteor,Methods,Callback,Meteor,Meteor.js上的那段代码出错了: 客户端: Meteor.call("logUser", function(myvar){ console.log("le chat client : "+myvar) ; Session.set("chatId", myvar); }); Meteor.call("logUser", function(error , result){ if(error) c
Meteor.call("logUser", function(myvar){
console.log("le chat client : "+myvar) ;
Session.set("chatId", myvar);
});
Meteor.call("logUser", function(error , result){
if(error)
console.log(error.reason);
else
console.log(result);
});
服务器端:
Meteor.methods({
logUser : function(mycallback){
mycallback("myString");
}
});
Meteor.methods({
logUser : function(){
return "myString";
}
});
我真的不明白为什么它不起作用,该方法触发得很好,但调用“mycallback”时代码会中断:
“Undefined不是函数”您不能将函数作为参数传递给Meteor方法 为什么会这样
- 出于安全考虑,您是否知道基本上您是在尝试让客户端在服务器端上下文中执行任何代码?您不能信任客户端,可能有人使用Meteor.call(“logUser”,function(){破坏服务器的恶意代码});在浏览器控制台中,用一行代码杀死服务器
- 我猜Meteor.call的参数是使用JSON格式序列化的,JSON格式不允许函数,所以这在技术上是不可能的。您可以将函数作为字符串传递并在服务器上求值,但这将是一个可怕的错误
Meteor.call("logUser", function(myvar){
console.log("le chat client : "+myvar) ;
Session.set("chatId", myvar);
});
Meteor.call("logUser", function(error , result){
if(error)
console.log(error.reason);
else
console.log(result);
});
服务器端:
Meteor.methods({
logUser : function(mycallback){
mycallback("myString");
}
});
Meteor.methods({
logUser : function(){
return "myString";
}
});
几分钟前我找到了解决方案,谢谢你的帮助!