📜  使用 Node.js 创建 COVID-19 跟踪器 CLI

📅  最后修改于: 2022-05-13 01:56:54.581000             🧑  作者: Mango

使用 Node.js 创建 COVID-19 跟踪器 CLI

在本文中,我们将了解如何使用 Node.js 创建命令行 Corona Virus Tracker。我们将跟踪印度各州的总病例、活跃病例、完全康复病例和总死亡人数。

方法:我们使用一个名为“request”的 npm 包从公开可用的 covid-19 api https://api.covid19india.org/data.json获取数据
我们将清理获取的数据并使用“console.table()”命令将数据格式化为表格。我们还可以通过使用 setInterval() 方法调度进程来自动化跟踪器。

请求包:请求被设计为进行 http 调用的最简单方式。它默认支持 HTTPS 并遵循重定向。

安装请求包:

$ npm install request

注意:在“app.js”文件所在的当前文件夹中运行此命令。

请求语法:

request(url, (error, response, body) => {
    if(!error && response.statusCode == 200) {
        statements to be executed.
    }
}

在哪里,

  • url:向其发出请求的 API 端点。
  • response: HTTP 响应状态码表示特定的 HTTP 请求是否已成功完成。
  • 正文:响应数据。

示例:

// Importing the request package
const request = require("request");
  
// API endpoint to which the http
// request will be made
const url = "https://api.covid19india.org/data.json";
  
// HTTP request
request(url, (error, response, body) => {
  
    // Error - Any possible error when
    // request is made.
  
    // Eesponse - HTTP response status codes
    // indicate whether a specific HTTP 
    // request has been successfully completed
  
    // body - response data
  
    // 200 - successful response
    if (!error && response.statusCode == 200) {
  
        // The response data will be in string
        // Convert it to Object.
        body = JSON.parse(body);
  
        // The data have lot of extra properties
        // We will filter it
        var data = [];
        for (let i = 0; i < body.statewise.length; i++) {
            data.push({
                "State": body.statewise[i].state,
  
                "Confirmed": body.statewise[i].confirmed,
  
                "Active": body.statewise[i].active,
  
                "Recovered": body.statewise[i].recovered,
  
                "Death": body.statewise[i].deaths
            });
        }
  
        console.log("-----Total Cases in India "
            + "and in each state-----");
  
        // Format to table
        console.table(data);
    }
})

输出: