Rumah > hujung hadapan web > tutorial js > Bina aplikasi cuaca baris arahan di Deno

Bina aplikasi cuaca baris arahan di Deno

Joseph Gordon-Levitt
Lepaskan: 2025-02-10 13:07:16
asal
790 orang telah melayarinya

Build a Command Line Weather App in Deno

Tutorial ini membimbing anda melalui membina aplikasi Deno pertama anda: program ramalan cuaca baris arahan. Kami akan merangkumi pemasangan Deno, mengambil data cuaca melalui API OpenWeatherMap, dan menyampaikan ramalan dalam jadual mesra pengguna. Kod Visual Studio dengan plugin Deno sangat disyorkan. Kami akan menggunakan TypeScript untuk kejelasan kod yang dipertingkatkan.

Konsep Utama:

    Memasang dan mengesahkan persekitaran runtime Deno.
  • menggunakan API OpenWeatherMap (memerlukan pendaftaran akaun percuma untuk kunci API).
  • Memahami model kotak pasir selamat Deno dan bendera kebenaran (mis.,
  • ). --allow-net
  • mengimport modul menggunakan URL (perbezaan utama dari node.js).
  • mengendalikan hujah baris arahan dan keadaan ralat.
  • pemformatan data dan persembahan menggunakan
  • dan date-fns. ascii_table

Pemasangan:

Pasang Deno menggunakan arahan yang sesuai untuk sistem pengendalian anda:

Windows (PowerShell):

iwr https://deno.land/x/install/install.ps1 -useb | iex
Salin selepas log masuk

linux (terminal):

curl -fsSL https://deno.land/x/install/install.sh | sh
Salin selepas log masuk

macOS (homebrew):

brew install deno
Salin selepas log masuk
Sahkan pemasangan:

deno --version
Salin selepas log masuk
Buat direktori projek dan

fail: index.ts

mkdir weather-app
cd weather-app
code index.ts  // Or your preferred editor
Salin selepas log masuk

mengambil input pengguna dan data API:

Nama bandar diluluskan sebagai hujah baris arahan. Kami akan menggunakan modul Deno

untuk parsing argumen: flags

import { parse } from "https://deno.land/std@0.61.0/flags/mod.ts";
// ... (rest of the code)
Salin selepas log masuk
API

mengambil data dari OpenWeatherMap: fetch

// ... (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)
Salin selepas log masuk
ingat untuk berlari dengan bendera

: --allow-net

deno run --allow-net index.ts --city London
Salin selepas log masuk

Pemprosesan Data dan Pembentangan: kami akan menggunakan

untuk pemformatan tarikh dan

untuk output bersih: date-fns ascii_table

output akhir adalah jadual yang diformat:
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)
Salin selepas log masuk

// ... (table creation and display)
console.log(table.toString());
Salin selepas log masuk
Kod Lengkap (dengan pengendalian ralat dan definisi jenis):

(nota: ganti dengan kunci API OpenWeatherMap sebenar anda.) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Sambutan yang dipertingkatkan ini merangkumi penjelasan dan pengendalian ralat yang lebih terperinci, menjadikannya lebih mantap dan mesra pemula. Ingatlah untuk menggantikan kunci API Pemegang Letak dengan anda sendiri.
// ... (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)
Salin selepas log masuk

Atas ialah kandungan terperinci Bina aplikasi cuaca baris arahan di Deno. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan