Vorwort:Egal, ob Sie den Fernseher einschalten oder kurze Videos ansehen, Sie werden sehen, dass Zhengzhou in der Provinz Henan in den letzten Tagen von einem unvorhersehbaren Regensturm heimgesucht wurde. Insbesondere hätte niemand gedacht, dass die U-Bahn-Station durch Überschwemmungen überflutet würde, und die Situation der eingeschlossenen Passagiere war unvorstellbar. Nachdem wir einige Berichte von Augenzeugen gelesen haben, die berichten, wie sie dem Tod nur knapp entronnen sind, können wir uns vorstellen, wie hilflos und frustriert sie angesichts der plötzlichen Katastrophe und ihrer Unfähigkeit, damit umzugehen, waren. Auch in der Hightech-Zone von Zhengzhou, in der wir uns befinden, kam es zu Wasser- und Stromausfällen. Zum Zeitpunkt der Abfassung dieses Artikels war das Signal für Radio und Fernsehen noch nicht wiederhergestellt und unsere Bürokollegen mussten sich zum Arbeiten grundsätzlich noch immer mit Hotspots verbinden. Dieser Artikel beginnt aus einer praktischen Perspektive und verwendet NodeJS und eine kostenlose Schnittstelle eines Drittanbieters, die Daten aggregiert, um ein vollständiges Echtzeit-Wetterwarnprojektsystem zu erstellen. Dieser Artikel verwendet keinen besonders fortschrittlichen Technologie-Stack, sein Zweck besteht darin, die Diskussion anzuregen. Schritt 1: Finden Sie die kostenlose Wettervorhersage-SchnittstelleEs gibt viele kostenlose API-Schnittstellen zum Abrufen von Wetterbedingungen im Internet. Die von mir hier verwendete ist diejenige, die Daten aggregiert, die relativ stabil von großen Herstellern stammen. Bewerbungsadresse: https://www.juhe.cn/docs/api/id/73 Nach erfolgreicher Antragstellung wird im Personal Center ein Anforderungsschlüssel generiert, welcher beim Absenden der Schnittstelle verwendet wird. Schritt 2: Wettervorhersage-Schnittstelle nutzen und Programmcode generierenGemäß den Anweisungen zur Verwendung aggregierter Daten können wir das Schnittstellen-Debugging-Tool verwenden, um die Schnittstelle zu debuggen. Hier verwenden wir ApiPost-Tests. Sie können sehen, dass das JSON-Format nach erfolgreicher Anforderung wie folgt aussieht: { "reason": "Abfrage erfolgreich!", "Ergebnis": { "Stadt": "Zhengzhou", "Echtzeit": { "Temperatur": "24", "Luftfeuchtigkeit": "100", "info": "Leichter Regen", "wid": "07", "direct": "Nordostwind", "power": "Stufe 2", "aqi": "32" }, "Zukunft": [ { "Datum": "23.07.2021", "Temperatur": "23/28℃", "Wetter": "Leichter Regen, wechselnd bewölkt", "wid": { "Tag": "07", "Nacht": "02" }, "direkt": "Ostwind wird zu Nordwind" }, { "Datum": "24.07.2021", "Temperatur": "24/31℃", "Wetter": "Leichter Regen, wechselnd bewölkt", "wid": { "Tag": "07", "Nacht": "01" }, "direkt": "Nordostwind dreht auf Ostwind" }, { "Datum": "25.07.2021", "Temperatur": "23/31℃", "Wetter": "Bewölkt", "wid": { "Tag": "01", "Nacht": "01" }, "direkt": "Ostwind dreht auf Südostwind" }, { "Datum": "26.07.2021", "Temperatur": "24/31℃", "Wetter": "leichter Regen", "wid": { "Tag": "07", "Nacht": "07" }, "direkt": "Nordostwind" }, { "Datum": "27.07.2021", "Temperatur": "23/31℃", "Wetter": "Leichter Regen, der sich aufklart", "wid": { "Tag": "07", "Nacht": "00" }, "direkt": "Nordostwind dreht auf Südwind" } ] }, "Fehlercode": 0 } An dieser Stelle haben wir die Wetterdaten für die nächsten 7 Tage erhalten. Schritt 3: Senden Sie E-Mails in NodeJS mit NodemailerDer Nodemailer von nodeJS wird zum Senden von E-Mails verwendet und ist sehr nützlich. Sie können es mit dem folgenden Befehl installieren: npm installiere Nodemailer Nachfolgend finden Sie eine Funktion, die ich zum Senden von E-Mails geschrieben habe. Das E-Mail-Konto und den Autorisierungscode erhalten Sie beim entsprechenden E-Mail-Dienstanbieter. /** * nodeJS E-Mail senden * * */ Funktion sendEmail(text){ nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ service:"126", //E-Mail secure:true, //Sicherer Sendemodus auth:{ user:"be***[email protected]", // E-Mail-Adresse des Absenders pass:"MLQ***PYU" // Autorisierungscode, der vom E-Mail-Dienstanbieter bezogen wird. Die Adresse zum Abrufen der 126-E-Mail-Adresse lautet: https://help.mail.163.com/faq.do?m=list&categoryID=197 } }) let mailOptions = { Von: „be***[email protected]“, // E-Mail-Adresse des Absenders. Belassen Sie sie einfach bei der oben angegebenen E-Mail-Adresse des Absenders. An: „[email protected]“, // E-Mail-Adresse des Empfängers. Dies ist die E-Mail-Adresse für den Empfang von Wettervorhersagen in Echtzeit. Betreff: „Wetter-Echtzeit-Überwachungssystem“, // Betreff (Titel) der E-Mail text:text // Aufsatz per E-Mail senden} transporter.sendMail(mailOptions,(err,data) => { wenn(fehler){ console.log(fehler); res.json({status:400,msg:"Senden fehlgeschlagen...."}) }anders{ konsole.log(Daten); res.json({status:200,msg:"Mail erfolgreich gesendet..."}) } }) } // Testen Sie das Senden einer E-Mail sendEmail('Es regnet') Erstellen Sie ein neues weather.js mit dem obigen Code darin. Knotenwetter.js Sie können das Versenden von E-Mails testen. Erfolgreich gesendet, E-Mail erfolgreich empfangen. Schritt 4: Holen Sie sich regelmäßig das Wetter in nodeJS und senden Sie es an das angegebene PostfachKlicken Sie oben rechts in ApiPost auf „NodeJS-Code (Anforderung) generieren“, um den Programmcode zum Anfordern der aggregierten Wetterschnittstelle in nodejs zu generieren. Wir können die oben genannten Anforderungen erfüllen, indem wir setInterval kombinieren. Der vollständige Code lautet wie folgt: /** * nodeJS E-Mail senden * * */ Funktion sendEmail(text){ nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ service:"126", //E-Mail secure:true, //Sicherer Sendemodus auth:{ user:"be***[email protected]", // E-Mail-Adresse des Absenders pass:"MLQ***PYU" // Autorisierungscode, der vom E-Mail-Dienstanbieter bezogen wird. Die Adresse zum Abrufen der 126-E-Mail-Adresse lautet: https://help.mail.163.com/faq.do?m=list&categoryID=197 } }) let mailOptions = { Von: „be***[email protected]“, // E-Mail-Adresse des Absenders. Belassen Sie sie einfach bei der oben angegebenen E-Mail-Adresse des Absenders. An: „[email protected]“, // E-Mail-Adresse des Empfängers. Dies ist die E-Mail-Adresse für den Empfang von Wettervorhersagen in Echtzeit. Betreff: „Wetter-Echtzeit-Überwachungssystem“, // Betreff (Titel) der E-Mail text:text // Aufsatz per E-Mail senden} transporter.sendMail(mailOptions,(err,data) => { wenn(fehler){ console.log(fehler); res.json({status:400,msg:"Senden fehlgeschlagen...."}) }anders{ konsole.log(Daten); res.json({status:200,msg:"Mail erfolgreich gesendet..."}) } }) } setzeIntervall(Funktion(){ var Anfrage = erforderlich('Anfrage'); var Header = { „Benutzer-Agent“: „Apipost-Client-Laufzeit/+https://www.apipost.cn/“ }; var Optionen = { URL: „http://apis.juhe.cn/simpleWeather/query?city=%E9%83%91%E5%B7%9E&key=8763efe2a90b025c03e03fef95621cbc“, Überschriften: Überschriften }; Funktion Rückruf (Fehler, Antwort, Text) { Lassen Sie json = JSON.parse(body); konsole.log(json.ergebnis) wenn (!Fehler && response.statusCode == 200) { sendEmail('Zhengzhou zukünftiges Wetter' + json.result.future[0].weather) } } Anfrage (Optionen, Rückruf); }, 300000); Zu diesem Zeitpunkt ist das System bereits erstellt. Wir müssen nur einen kleinen Server finden, um auszuführen Knotenwetter.js Der Befehl sendet alle 5 Minuten die Wetterinformationen an die angegebene E-Mail-Adresse. Natürlich können Sie diese auch nach Bedarf versenden. Notiz:Da es aufgrund der chinesischen Kodierung zu Problemen bei der Abfrage kommen kann, empfiehlt es sich, den Städtenamen mitzukodieren (Rechtsklick). Damit ist dieser Artikel über die Verwendung von Node.JS zum Erstellen eines Echtzeit-Unwetterwarnsystems abgeschlossen. Weitere relevante Inhalte zu Echtzeit-Unwetterwarnungen mit Node.JS finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Reines CSS zum Erreichen der Funktion „Klicken zum Erweitern und Lesen des Volltexts“
Mit REGELN kann die Art der inneren Rahmen der Ta...
Inhaltsverzeichnis 1. Beispielszenario 1.1. Legen...
Nachfragehintergrund Als statistische Schnittstel...
1. Erste Schritte mit setUp Stellen Sie kurz die ...
Inhaltsverzeichnis Einzelne Bedingung, einzelne D...
Inhaltsverzeichnis (1) Einleitung: (2) Zum Kopier...
Inhaltsverzeichnis 1. Verwenden Sie die Komponent...
Einführung in die Sicherheitslücke Die SigRed-Sic...
Vor kurzem hat Xiao Ming einen neuen Mac gekauft ...
Einführung: Die Konfiguration von Docker, auf dem...
Inhaltsverzeichnis 1. Standardmäßig anzeigen und ...
Alle Tags müssen klein geschrieben sein In XHTML m...
In diesem Artikel finden Sie das grafische Tutori...
Verwenden Sie auto.js, um den täglichen Check-in ...
Wenn Sie ein Vue-Projekt entwickeln, müssen Sie h...