У меня есть функция, которая пытается использовать MapBox для автозаполнения поля ввода html
.Я хочу сделать вызов геокодирования на keydown
, чтобы пользователям не приходилось полностью вводить название своего города.
В app.js
Я использую dotenv так что мой ключ API доступен через process.env.MAPBOX_TOKEN
и требует Mapbox
:
app.js:
require('dotenv').config()
const mbxGeocoding = require('@mapbox/mapbox-sdk/services/geocoding');
const geocodingClient = mbxGeocoding({ accessToken: process.env.MAPBOX_TOKEN });
Я сейчас хочу сделать geocodingClient
доступно для некоторого клиентского кода jQuery, так что я могу вызвать функцию geocoder
для keydown
в поле формы <input>
. Как я могу это сделать?
Ниже выдает ошибку geocodingClient is not defined
.Как сделать эту серверную функцию доступной для кода на стороне клиента?
public / js / mapBox.js:
$(document).ready(function () {
$('#citySearch').on('keyup', function(){
var location = $(this).val();
console.log("Location: " + location);
async function geocoder(location){
try {
let response = await geocodingClient
.forwardGeocode({
query: location,
limit: 2
})
.send();
console.log(response.body.features[0].place_name)
} catch(err){
console.log(err.message);
}
}
geocoder(location)
})
});