我正在尝试调用服务器方法来返回是否存在隐藏属性。该属性在终端控制台中正确返回,但在客户端未正确返回(返回undefined)。我想要返回的属性是tireMarkup
。
这是我的方法调用:
var currentUserId = this._id;
Meteor.call('checkMarkup', currentUserId, function(tireMarkupExists) {
console.log(tireMarkupExists) //returns undefined
if(!tireMarkupExists) {
alert('Please enter a tire markup greater than 1 for the customer');
alert(tireMarkupExists) //returns undefined
}
这是我的服务器方法:
Meteor.methods({
'checkMarkup': function(currentUserId, tireMarkupExists) {
console.log('user? ' + currentUserId); //returns the correct user
a = Meteor.users.findOne(currentUserId);
console.log(a.tireMarkup); //returns the integer value correctly
if (a.tireMarkup & a.tireMarkup > 1) {
return (tireMarkupExists);
}
}
});
有什么想法?我认为问题与我传递currentUserId
和tireMarkupExists
参数的方式有关。
答案 0 :(得分:2)
为什么不在结果上返回true / false值,如下所示。
将服务器方法更改为此。
Meteor.methods({
'checkMarkup': function(currentUserId) {
console.log('user? ' + currentUserId); //returns the correct user
a = Meteor.users.findOne(currentUserId);
console.log(a.tireMarkup); //returns the integer value correctly
if (a.tireMarkup & a.tireMarkup > 1) {
return true;
}else{
return false;
}
}
});
并像这样使用Meteor.call
。
Meteor.call('checkMarkup', currentUserId, function(error,result) {
if(!error){
if(result === true){
console.log("tireMarkupExists");
}else{
cosnole.log("tireMarkupExists dont exist")
}
}else{
console.log("Opss an error : " error.reason)
}
}