2014-05-19 5 views
0

Я пытаюсь вызвать методы, в этом я делаю http get, если результат в порядке, я возвращаю его и отслеживаю на моей базе mongodb, если он возвращает мне ошибку, я хочу отслеживать это тоже.Метод Meteor Async

К сожалению, это не работает! Я читаю сообщения о stackoverflow, но есть только старые проблемы.

У вас есть решение?

Клиент:

Meteor.call('get',function(err, response) { 
    console.log(err+" ee"+response); 
}); 

Сервер:

var header = 'xxxxxxxx'; 
Meteor.startup(function() { 

    Meteor.methods({ 
    get : function(){ 
     console.log("call"); 
     var url = 'http://xxxxxxxxxx'; 
     this.unblock(); 

     Meteor.http.get(url, function(err,res){ 
     if(!err){ 
      //tracking 
      return res; 
     }else{ 
      //tracking 
      return err; 
     } 
     }); 
    } 
    }); 
}); 

ответ

1

На сервере, вы можете позвонить HTTP.get без обратного вызова, чтобы сделать "синхронный" HTTP вызова. Вам нужно сделать meteor add http в командной строке, чтобы добавить HTTP в ваш проект.

Meteor.methods({ 
    get: function(){ 
    console.log("call"); 
    var url = 'http://xxxxxxxxxx'; 
    this.unblock(); 

    try { 
     var res = HTTP.get(url); 
     // tracking 
     return res; 
    } catch (err) { 
     // tracking 
     return err; // or throw new Meteor.Error(...) 
    } 
    } 
}); 
+0

Добавить Мне не нужно менять свой клиентский звонок? – Lombric

+0

Вам не нужно менять свой клиентский звонок. – user3374348

Смежные вопросы