Heim > Web-Frontend > js-Tutorial > Erstellen Sie eine Befehlszeilenwetter -App in Deno

Erstellen Sie eine Befehlszeilenwetter -App in Deno

Joseph Gordon-Levitt
Freigeben: 2025-02-10 13:07:16
Original
790 Leute haben es durchsucht

Build a Command Line Weather App in Deno

Dieses Tutorial führt Sie durch den Aufbau Ihrer ersten Deno-Anwendung: ein Befehlszeilen-Wettervorhersageprogramm. Wir werden die Deno-Installation abdecken, Wetterdaten über die OpenWeatherMap-API abrufen und die Prognose in einer benutzerfreundlichen Tabelle präsentieren. Der Visual Studio -Code mit dem Deno -Plugin wird dringend empfohlen. Wir werden TypeScript für erweiterte Code -Klarheit verwenden.

Schlüsselkonzepte:

  • Installieren und Überprüfen der Laufzeitumgebung von Deno.
  • Verwenden der OpenWeatherMap -API (erfordert eine kostenlose Kontoregistrierung für einen API -Schlüssel).
  • Denos sicheres Sandbox -Modell und Berechtigungsflags verstehen (z. B. --allow-net).
  • Module mit URLs importieren (ein Schlüsselunterschied von Node.js).
  • Befehlszeilen und Fehlerbedingungen für Befehlszeilen.
  • Datenformatierung und Präsentation mit date-fns und ascii_table.

Installation:

Deno mit dem entsprechenden Befehl für Ihr Betriebssystem installieren:

Windows (PowerShell):

iwr https://deno.land/x/install/install.ps1 -useb | iex
Nach dem Login kopieren

Linux (terminal):

curl -fsSL https://deno.land/x/install/install.sh | sh
Nach dem Login kopieren

macOS (homebrew):

brew install deno
Nach dem Login kopieren

Installation überprüfen:

deno --version
Nach dem Login kopieren

Erstellen Sie ein Projektverzeichnis und index.ts Datei:

mkdir weather-app
cd weather-app
code index.ts  // Or your preferred editor
Nach dem Login kopieren

Abrufen von Benutzereingaben und API -Daten:

Der Stadtname wird als Befehlszeilenargument übergeben. Wir werden das flags -Modul von Deno für das Argument analysieren:

import { parse } from "https://deno.land/std@0.61.0/flags/mod.ts";
// ... (rest of the code)
Nach dem Login kopieren

Die fetch api ruft Daten aus OpenWeatherMap:

ab:
// ... (API key and other code)

const res = await fetch(
  `https://api.openweathermap.org/data/2.5/forecast?q=${args.city}&units=metric&appid=${apiKey}`,
);
const data = await res.json();
// ... (error handling and data processing)
Nach dem Login kopieren

--allow-net Denken Sie daran, mit der

Flagge zu laufen:
deno run --allow-net index.ts --city London
Nach dem Login kopieren

Datenverarbeitung und Präsentation:

date-fns Wir werden ascii_table für die Datumsformatierung und

für eine saubere Ausgabe verwenden:
import { fromUnixTime, format } from "https://deno.land/x/date_fns@v2.15.0/index.js";
import AsciiTable from "https://deno.land/x/ascii_table/mod.ts";
// ... (data processing using interfaces and functions)
Nach dem Login kopieren

Die endgültige Ausgabe ist eine formatierte Tabelle:
// ... (table creation and display)
console.log(table.toString());
Nach dem Login kopieren

komplette Code (mit Fehlerbehandlungen und Typdefinitionen): "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (Hinweis: Ersetzen

Diese verbesserte Reaktion enthält detailliertere Erklärungen und Fehlerbehandlungen, wodurch sie robuster und anfängerfreundlicher wird. Denken Sie daran, den Platzhalter -API -Schlüssel durch Ihren eigenen zu ersetzen.
// ... (imports as shown above)

// ... (argument parsing and error handling as shown above)

const apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

const res = await fetch(
  `https://api.openweathermap.org/data/2.5/forecast?q=${args.city}&units=metric&appid=${apiKey}`,
);

if (!res.ok) {
  console.error(`Error fetching weather data: ${res.status} ${res.statusText}`);
  Deno.exit(1);
}

const data = await res.json();

// ... (Interface definition and data processing as shown in the previous sections)

// ... (table creation and display as shown in the previous sections)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonErstellen Sie eine Befehlszeilenwetter -App in Deno. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage