Я пытаюсь сделать HTTP вызов на удаленный сервер в моем приложенииMeteor.call возвращение неопределенного от сервера к клиенту
У меня есть пакет с функцией, которая обрабатывает фактический вызов, а затем преобразует XML в JSON
myPackage = {
baseUrl: "http://12.34.56.78:8080/api",
getBatchList: function() {
var url = this.baseUrl + "/batchList.xml";
HTTP.get(url, {auth: "user:pass"}, function(err, res) {
if (!err) {
console.log(res);
xml2js.parseStringSync(res.content, function(error, result){
if (!error) {
console.log(result); //the result is displayed
return result;
};
});
};
});
}
}
Я тогда Meteor.method объявил на сервере, так что я могу вызвать функцию от клиента, так как MyPackage доступна только на сервере (который он должен быть, так как его изготовление HTTP звонки вне домена которые я не могу сделать с клиентом).
if (Meteor.isServer) {
Meteor.methods({
getBatchList: function() {
myPackage.getBatchList(function(error, result) {
if (!error && result) {
console.log(result); //nothing is logged to the console
return result;
};
});
}
})
}
однако, кажется, что результаты не передаются в метод getBatchList
по какой-то причине, что я подозреваю, что я что-то не так с тем, как обратный вызовом структурировано (я понятия не имею);
и, наконец, на клиенте вызов метода
if (Meteor.isClient) {
Template.hello.events({
'click input' : function() {
Meteor.call("getBatchList", function(error, result) {
if (result && !error) {
console.log(result);
} else {
console.log("nothing returned!!!");
};
});
}
});
}
, который также не получит каких-либо результатов от сервера нет ошибки или результата.
любая помощь будет оценена.
спасибо.
Я не вижу в ваших ошибках лесозаготовительных кода на консоль. Попробуйте, чтобы убедиться, что вы получаете ошибку, полученную от get, а не результат – landland