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“
1. dies.$router.push() 1. Ansicht <Vorlage>...
Schreiben Sie Konfigurationsdateien in server.xml...
Projektszenario: Beim Ausführen des Vue-Projekts ...
Webdesign ist eine aufstrebende Randbranche, die n...
Dieser Artikel beschreibt, wie man die Zeitsynchr...
Ich habe diese Frage heute in der SQL-Schulungsfr...
Inhaltsverzeichnis Was ist Abflachung? Rekursion ...
Die Beispiele in diesem Artikel sind alle in klei...
Um die Anforderungen effizient zu erfüllen und au...
Die Nginx-Protokolle werden von Filebeat gesammel...
MySQL-Gruppensortierung, um die obersten N zu fin...
Inhaltsverzeichnis Master-Slave-Replikationsmecha...
Floating Ads sind eine sehr verbreitete Form der ...
Seit 2019 verwenden sowohl Android- als auch iOS-...
Inhaltsverzeichnis Ursache des Problems: Lösung: ...