Подтвердить что ты не робот

Метод Meteor.http undefined на сервере?

Итак, я пытаюсь написать метод, который вызывает HTTP-вызов. Когда я запускаю метод, я получаю следующую ошибку:

Исключение при вызове метода 'upload' TypeError: невозможно вызвать метод 'call' из undefined

Вот как выглядит код:

Клиент:

console.log(Meteor.call('upload', f, content));

Сервер:

Meteor.methods({
  upload: function(file, content) {
    this.unblock();
    Meteor.http.call("PUT", "http://blah");
  }
});

UPDATE: проблема решена, оказывается, мне пришлось включить пакет: meteor add http

4b9b3361

Ответ 1

Вам просто нужно добавить пакет HTTP, выполнив его в командной строке в проекте:

Метеор добавить http

Ответ 2

Также вам нужно позвонить с помощью клиентской части Meteor.call.

Из документации:

На клиенте, если вы не пройдете обратный вызов, и вы не находитесь в заглушке, вызов вернет undefined, и вы не сможете получить возвращаемое значение метода. Это потому, что у клиента нет волокон, поэтому на самом деле он не может блокировать удаленное выполнение метода.

Итак, вы должны изменить этот

console.log(Meteor.call('upload', f, content));

к этому

Meteor.call('upload', f, content, function(error, result){console.log(result);});