私は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});
必要なデータが返されます。
代わりにメソッドクラスから結果を取得する方法はありますか? ありがとう