Weathervenue - это веб -сайт погоды, использующий карты Google и данные OpenWeatherMap, чтобы позволить людям найти лучшие места для посещения в своем окружении; Для более теплой зимней погоды или прохладного лета.
Это веб-приложение Nodejs & Express с другими зависимостями (Axios, Redis, близлежащие города, Openweather-APIS ...).
При развертывании после исследования это должно быть похоже на:



Запустите Redis Server в порте по умолчанию, заполните переменные .env:
// root folder
NODE_ENV = localhost
GOOGLE_MAPS_API_KEY =
OPENWEATHERMAP_API_KEY = // client
GOOGLE_MAPS_API_KEY =
DEFAULT_LAT = 48.86
DEFAULT_LNG = 2.34
CENTER_LOCATION = parisкак в корневой папке, так и внутри клиентской папки.
OpenWeatherMap больше не является полностью бесплатным, если вы не можете получить ключ для запуска ваших тестов, пожалуйста, игнорируйте OPENWEATHERMAP_API_KEY
и изменить функцию fetchWeather следующим образом
import { fakeApiResponse } from '../consts/fakeOneCallApiResponse.js' ;
async function fetchWeather ( city , language ) {
return new Promise ( async ( resolve , reject ) => {
// const APIUrlWeather = `https://api.openweathermap.org/data/3.0/onecall?lat=${city.latitude}&lon=${city.longitude}&lang=${language}&exclude=hourly,minutely&units=metric&appid=${OPENWEATHERMAP_API_KEY}`
// const body0 = await axios.get(APIUrlWeather)
// const data0 = await body0.data
// const APIUrlPollution = `https://api.openweathermap.org/data/2.5/air_pollution?lat=${city.latitude}&lon=${city.longitude}&appid=${OPENWEATHERMAP_API_KEY}`
// const body1 = await axios.get(APIUrlPollution)
// const data1 = await body1.data
// resolve({ weather: data0, pollution: data1 })
resolve ( { weather : fakeApiResponse } )
} )
}также
const cities = [ nearestCities ( query , 10 ) [ 0 ] ] // nearestCities(query, 10);Пожалуйста, посмотрите открытые проблемы для конкретной проблемы и не стесняйтесь открывать любую новую проблему (например, лучший код, читабельность, модульность и лучшая практика, производительность, улучшение пользовательского интерфейса или даже улучшения функциональности ...).
Если вы внесете свой вклад, пожалуйста, учтите, что я могу объединить и опубликовать новый релиз под тем или иным каналом. Это будет на 100% бесплатно, хотя я могу добавить рекламу для получения некоторых расходов на кофе :)
Если вы хотите сохранить проект со мной; Вы всегда можете спросить.
Пожалуйста, сохраните это справедливым, если вы хотите развернуть где угодно; Попросить разрешения.
Сладкое кодирование!
Грань