0
我在玩meteorjs,很難找出我寫的異步方法到底發生了什麼。Meteorjs方法調用返回undefined即使有回調
//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});
它向我返回我想要的數據。
任何想法如何從方法類而不是結果?謝謝
您的項目結構如何?如果您沒有使用Meteor.isServer或Meteor.isClient條件,則必須將這些文件放在/ client和/ server文件夾中才能正常工作(methods.js將變爲/server/methods.js,client.js會成爲/client/client.js) –
嗨,很抱歉。這只是代碼的一部分。該代碼分別具有Meteor.isClient和Meteor.isServer。問題是當我創建下面的方法,並用回調調用Meteor.call時,它總是返回錯誤500。 –