我在玩meteorjs,很难弄清楚我写的异步方法到底发生了什么。
//in methods.js
feedbackTag = new Meteor.Collection('feedbackTag');
Meteor.methods({
searchTag: function (tag, collections) {
var result;
if(collections.toLowerCase() == 'feedback')
{
result = feedbackTag.find({tag: tag});
}
return result;
}
});
//in client.js
Template.executefb.events({
'keyup input#searchFeedback':
function(e) {
if(e.which == '13')
{
var tag = $('#searchFeedback').val();
Meteor.call('searchTag', tag, 'feedback', function(err, data){
//err returns:Internal server error, data returns undefined
console.log(err, data)
});
}
}
});
我真的不知道为什么它会返回内部服务器错误:500。请有任何建议。
提前致谢!
更新:
我意识到在客户端调用结果时结果变为“未定义”。但是,如果我直接从客户端调用,即
var result = feedbackTag.find({tag: tag});
它返回我想要的数据。
任何想法如何从方法类中获取结果?谢谢