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

Erstellen Sie eine Befehlszeilenwetter -App in Deno

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-02-10 13:07:16894Durchsuche

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):

<code class="language-powershell">iwr https://deno.land/x/install/install.ps1 -useb | iex</code>

Linux (terminal):

<code class="language-bash">curl -fsSL https://deno.land/x/install/install.sh | sh</code>

macOS (homebrew):

<code class="language-bash">brew install deno</code>

Installation überprüfen:

<code class="language-bash">deno --version</code>

Erstellen Sie ein Projektverzeichnis und index.ts Datei:

<code class="language-bash">mkdir weather-app
cd weather-app
code index.ts  // Or your preferred editor</code>

Abrufen von Benutzereingaben und API -Daten:

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

<code class="language-typescript">import { parse } from "https://deno.land/std@0.61.0/flags/mod.ts";
// ... (rest of the code)</code>

Die fetch api ruft Daten aus OpenWeatherMap:

ab:
<code class="language-typescript">// ... (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)</code>

--allow-net Denken Sie daran, mit der

Flagge zu laufen:
<code class="language-bash">deno run --allow-net index.ts --city London</code>

Datenverarbeitung und Präsentation:

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

für eine saubere Ausgabe verwenden:
<code class="language-typescript">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)</code>

Die endgültige Ausgabe ist eine formatierte Tabelle:
<code class="language-typescript">// ... (table creation and display)
console.log(table.toString());</code>

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.
<code class="language-typescript">// ... (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)</code>

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!

Stellungnahme:
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