A Weathervene é um site de clima usando dados do Google Maps e OpenWeatherMap para permitir que as pessoas encontrem os melhores lugares para visitar em sua comitiva; Para férias mais quentes no clima de inverno ou escapadas frias de verão.
É um aplicativo NodeJS & Express Web com outras dependências (Axios, Redis, Cidades próximas, OpenWeather-Apis ...).
Quando implantado após a pesquisa, deve ser como:



Execute o servidor Redis na porta padrão, preencha as variáveis .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 = parisna pasta raiz e na pasta do cliente interno.
OpenWeathermap não está mais completamente livre, se você não conseguir uma chave para executar seus testes, ignore OPENWEATHERMAP_API_KEY , mas use a variável falsa aqui: https://github.com/bacloud22/weatherveue/blob/main/libs/consts/fakeCakeLAlapSoSOSSONSOSSONSOSTENSO.JS
e altere a função fetchWeather da seguinte maneira
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 } )
} )
}também
const cities = [ nearestCities ( query , 10 ) [ 0 ] ] // nearestCities(query, 10);Consulte questões abertas para uma questão específica e não hesite em abrir qualquer novo problema (como melhor código, legibilidade, modularidade e práticas recomendadas, desempenho, melhor interface do usuário ou mesmo aprimoramentos de funcionalidade ...).
Se você contribuir, considere que eu posso mesclar e publicar um novo lançamento em um canal ou outro. Será 100% livre, embora eu possa adicionar anúncios para gerar algumas despesas de café :)
Se você quiser manter o projeto comigo; Você sempre pode perguntar.
Por favor, mantenha -o justo se você deseja implantar em qualquer lugar; Peça permissão.
Codificação doce!
Mit