Übung JavaScript Meteo Http
Ausgangslage
Neu wollen wir die Temperaturen über die URL https://www.simtech-ag.ch/education/internet/jjas/resources/meteo/http/temperatures.json und dem NodeJS Http Module laden.
Die main.js Anwendung soll die Daten wie dem neu zu programmierenden MeteoDataHttpJSON Objekt asynchron lesen via Callback Funktion:
let meteoDataHttpJSON = new MeteoDataHttpJSON('https://www.simtech-ag.ch/education/internet/jjas/resources/meteo/http/temperatures.json', () => {
    MeteoRun(meteoDataHttpJSON);
});Die Klasse MeteoDataHttpJSON zeigt das folgenden Gerüst:
import MeteoData from './MeteoData.js';import http from 'http';
export default class MeteoDataHttpJSON extends MeteoData {
    constructor(url, callback) {
        super();
        this.url = url;
        this.callback = callback;
        var options = {
            host: 'www.simtech-ag.ch',
            path: '/education/internet/jjas/resources/meteo/http/temperatures.json'
        };
        http.request(options, this.httpCallback.bind(this)).end();
    }
    httpCallback(response) {
        let jsonData = '';
        //another chunk of data has been received, so append it to `str`
        response.on('data', function (chunk) {
            jsonData += chunk;
        });
        
        let _this = this;
        //the whole response has been received, so we just print it out here
        response.on('end', function () {
             // TODO
            _this.callback();
        });
    }
}
Interessant ist der Aufruf this.httpCallback.bind(this), damit bindet man die Methode an das richtige Objekt.
Vorgehen
Lösen Sie bitte die Aufgabe wie folgt:
- Kopieren Sie die Lösung Meteo Data um in ein neues Verzeichnis.
 - Erstellen Sie die Datei MeteoDataHttpJSON.js gemäss dem obigen Programmgerüst MeteoDataHttpJSONy und programmieren Sie die fehlende //TODO Sequenz aus.
 - Passen Sie das Hauptprogramm (z.B. main.js) gemäss dem obigen Script mit der Variante Http JSON an.
 - Testen Sie das Resultat.
 
Lösung
Eine mögliche Lösung finden Sie hier
