Я пытаюсь использовать пакет геокодера, который я нашел в атмосфере (aldeed:geocoder), который использует пакет node-geocoder. Пакет метеора указывает, что для выполнения нового геокодирования я должен создать новый экземпляр GeoCoder, а затем вызвать для него метод геокодирования, передав строку адреса, например:
var geo = new GeoCoder();
var result = geo.geocode("location");
Если я помещу вышеуказанное в файл server.js в файл сервера моего приложения и результат console.log, я получу объект, напечатанный на терминале, как и ожидалось. Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь вызвать это с помощью метода метеора в ответ на ввод пользователя из окна поиска. В моем помощнике по шаблону есть это:
Template.layout.events({
'submit form': function(e) {
e.preventDefault();
var search = {
location: $(e.target).find('[name=search]').val()
}
console.log(search.location);
Meteor.call('getGeoCode', search.location, function(result) {
console.log(result)
});
}
});
и файл коллекции, прогнозы.js, содержит это:
Forecasts = new Mongo.Collection('forecasts');
Meteor.methods({
getGeoCode: function(search) {
var geo = new GeoCoder();
result = geo.geocode(search);
return result;
}
});
Но когда я пытаюсь это сделать, я получаю сообщение об ошибке в консоли, которое говорит мне, что GeoCoder не определен. Конкретно:
«Исключение при имитации эффекта вызова getGeoCode» ReferenceError: GeoCoder не определен
Итак, что здесь происходит? Почему невозможно создать новый экземпляр GeoCoder в этом методе и вызвать его, как это делаю я?