Weatherue ist eine Wetterwebsite, die Google Maps und OpenWeatherMap -Daten verwendet, damit die Leute die besten Orte finden, die sie in ihrem Gefolge besuchen können. Für wärmere Winterwetterurlaub oder kühle Sommerflucht.
Es handelt sich um eine NodeJS & Express-Web-App mit anderen Abhängigkeiten (Axios, Redis, nahegelegene Städte, Openweather-APIs ...).
Bei der Bereitstellung nach der Forschung sollte es wie:



REDIS -Server auf Standardport ausführen und .Env -Variablen einfüllen:
// 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 = parisSowohl im Root -Ordner als auch im Client -Ordner.
OpenWeatherMap ist nicht mehr vollständig kostenlos. Wenn Sie keine Schlüssel zum Ausführen Ihrer Tests erhalten können, ignorieren Sie bitte OPENWEATHERMAP_API_KEY , verwenden Sie jedoch die gefälschte Variable hier: https://github.com/bacloud22/weatherveue/blob/main/libs/consts/fakeonecallapiresponsed.js.js.js.js.js.js.js.js.js.js.js
und ändern Sie die fetchWeather -Funktion wie folgt
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 } )
} )
}Auch
const cities = [ nearestCities ( query , 10 ) [ 0 ] ] // nearestCities(query, 10);Weitere Informationen zu offenen Problemen für ein bestimmtes Problem finden Sie und zögern Sie nicht, ein neues Problem zu eröffnen (wie bessere Code, Lesbarkeit, Modularität und Best Practice, Leistung, bessere Benutzeroberfläche oder sogar Funktionalitätsverbesserungen ...).
Wenn Sie einen Beitrag leisten, denken Sie bitte daran, dass ich eine neue Veröffentlichung unter dem einen oder anderen Kanal veröffentlichen und veröffentlichen kann. Es wird 100% kostenlos sein, obwohl ich Anzeigen hinzufügen kann, um einige Kaffeekosten zu generieren :)
Wenn Sie das Projekt mit mir beibehalten möchten; Sie können immer fragen.
Bitte halten Sie es fair, wenn Sie irgendwo einsetzen möchten. Bitten Sie um Erlaubnis.
Süße Codierung!
MIT