返回

用 Deno 打造功能强大的天气预报工具

前端

拥抱技术进步,共建未来世界

随着科技的飞速发展,我们已经步入了数字化的时代。在这样一个时代,掌握技术和数据分析的能力至关重要。Deno 正是一款为现代开发而生的全新运行时环境,它融合了 Node.js 的优点,并引入了诸多创新和优化,可以帮助我们更轻松地编写代码、更快速地部署应用程序。而 TypeScript 作为一种强类型的编程语言,可以帮助我们编写更加健壮、可维护的代码,减少代码错误的发生。

Deno 入门:轻松便捷的安装

首先,我们需要在您的计算机上安装 Deno。您可以访问 Deno 的官方网站以获取最新版本的安装程序。安装过程简单易行,按照屏幕上的提示进行操作即可。一旦安装完成,您就可以在命令行中输入 "deno" 来验证是否安装成功。

项目创建:开启天气预报之旅

接下来,让我们创建一个新的 Deno 项目。打开您喜欢的代码编辑器或 IDE,创建一个新的文件夹,并将该文件夹命名为 "weather-forecast"。然后,在该文件夹中创建一个名为 "main.ts" 的文件,这将是我们的主程序文件。

数据获取:连接天气服务 API

为了获取天气数据,我们需要使用一个天气服务 API。在这里,我们将使用 OpenWeatherMap API。在 OpenWeatherMap 网站上注册一个账户,然后获取您的 API 密钥。将您的 API 密钥复制到一个名为 ".env" 的文件中,该文件位于 "weather-forecast" 文件夹中。

在 "main.ts" 文件中,让我们导入 Deno 的标准库和 OpenWeatherMap API 库:

import { fetch } from "deno";
import { parse } from "https://deno.land/std@0.117.0/encoding/json.ts";

接下来,让我们定义一个名为 "getWeatherData" 的函数来获取指定城市的天气数据:

async function getWeatherData(city) {
  const response = await fetch(
    `https://api.openweathermap.org/data/2.5/forecast?q=${city}&appid=${apiKey}`,
  );
  const data = await response.json();
  return data;
}

这个函数接受一个城市名称作为参数,并使用 OpenWeatherMap API 获取该城市的天气数据。它将返回一个包含天气信息的 JSON 对象。

解析数据:提取天气信息

现在,让我们定义一个名为 "parseWeatherData" 的函数来解析从 OpenWeatherMap API 获取的天气数据:

function parseWeatherData(data) {
  const city = data.city.name;
  const country = data.city.country;
  const weather = data.list[0].weather[0].main;
  const temperature = data.list[0].main.temp;
  const feelsLike = data.list[0].main.feels_like;
  const windSpeed = data.list[0].wind.speed;
  const humidity = data.list[0].main.humidity;
  return {
    city,
    country,
    weather,
    temperature,
    feelsLike,
    windSpeed,
    humidity,
  };
}

这个函数接受一个 JSON 对象作为参数,并从中提取城市名称、国家、天气状况、温度、体感温度、风速和湿度等信息。它将返回一个包含这些信息的 JavaScript 对象。

构建界面:命令行的天气预报

现在,让我们定义一个名为 "printWeatherData" 的函数来在命令行中显示天气数据:

function printWeatherData(data) {
  console.log(`天气预报:${data.city}, ${data.country}`);
  console.log(`天气状况:${data.weather}`);
  console.log(`温度:${data.temperature}°C`);
  console.log(`体感温度:${data.feelsLike}°C`);
  console.log(`风速:${data.windSpeed} m/s`);
  console.log(`湿度:${data.humidity}%`);
}

这个函数接受一个 JavaScript 对象作为参数,并在命令行中显示该对象中的天气信息。

程序入口:连接所有环节

现在,让我们在 "main.ts" 文件的底部添加以下代码作为程序的入口:

const city = Deno.args[0];
if (!city) {
  console.log("请输入城市名称作为参数。");
  Deno.exit();
}
const data = await getWeatherData(city);
const parsedData = parseWeatherData(data);
printWeatherData(parsedData);

这段代码首先检查命令行参数中是否包含城市名称。如果没有,则提示用户输入城市名称并退出程序。否则,它将获取指定城市的天气数据,并将其解析成 JavaScript 对象。最后,它将调用 "printWeatherData" 函数在命令行中显示天气信息。

运行程序:见证天气预报的魅力

现在,您就可以运行这个程序来获取指定城市的天气预报了。在命令行中导航到 "weather-forecast" 文件夹,然后输入以下命令:

deno run main.ts [city]

其中,[city] 是您想要查询的天气信息的城市名称。

结语:开启天气探索之旅

使用 Deno 和 TypeScript 构建的命令行天气预报工具,您已经拥有了一个强大的工具,可以随时随地获取指定城市的天气信息。这是一个简单的入门项目,但它可以作为您未来项目的坚实基础。随着您对 Deno 和 TypeScript 的不断学习和实践,您将能够构建更加复杂和强大的应用程序。在天气预报领域,还有许多其他有趣的项目可以探索,例如构建一个天气预报网站或应用程序,或者使用机器学习来预测天气。我希望这个项目能激发您的灵感,让您踏上技术探索的奇妙旅程。