iT邦幫忙

2022 iThome 鐵人賽

DAY 1
1
自我挑戰組

30 天線上自學前端系列 第 14

[Day 14] [APIs](1/2)用 Node HTTPS Module 來 GET Request(氣象資料)

  • 分享至 

  • xImage
  •  

昨天已經學到怎麼用 API 來獲取從各種網站獲得的資料,像是笑話、明星說的話(Kanye.rest API)、氣象資料等,今天這堂課是要把這些 API 資料放在我們的 web apps 裡面。

API 是自己的伺服器和別人伺服器之間的橋樑,我們透過 API 請求(request)資料,然後對方伺服器回應(Response)資料給自己的伺服器,然後自己的伺服器上再回應給客戶端瀏覽器(Client Browser)。

wsss@wsss-Pro front-end_projects % cd WeatherProject 
wsss@wsss-Pro WeatherProject % touch index.html    
wsss@wsss-Pro WeatherProject % touch app.js     


                            /*  用 command line 把 .js & .html 建立好
                            

wsss@wsss-Pro WeatherProject % npm init



/*  初始化(initialize)這個專案,執行完後會出現 pakeage.json 檔案,主要是用來紀錄裝了什麼 package



wsss@wsss-Pro WeatherProject % npm i express



                            /*  使用 express 建立環境
                            
                            

added 57 packages, and audited 58 packages in 1s

7 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
wsss@wsss-Pro WeatherProject % nodemon app.js


       /*  使用 nodemon 取代 node,這樣有修改就會自動 reload,不用手動再去重新連一次 node app.js


[nodemon] 2.0.19
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
server                        /*  這個是 console.log 出來的東西

目前 app.js 裡面的東西,先確認 console.log 的內容都有在網頁和 terminal 出現:


const express = require('express');

const app = express();

app.get("/",function(req,res){
    res.send('server is up')
})


app.listen(3000, function(){
    console.log('server');
})

接著加上 HTTPS request function:


app.get("/",function(req,res){


    const url = "https://api.openweathermap.org/data/2.5/forecast?lat=57&lon=-2.15&cnt=3&appid={KEY}"
    https.get(url, function(response){
        console.log(response);
    });

    res.send('server is up')
})

然後 terminal 會出現幾個特別需要留意的項目:

status code 200 代表是沒問題

statusCode: 200,
statusMessage: 'OK',

然後我們使用的是 GET method

method: 'GET',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/data/2.5/forecast?lat=57&lon=-2.15&cnt=3&appid=KEY',

上一篇
[Day 13] [APIs] API 的基本介紹
下一篇
[Day 15] [APIs](2/2)用 Node HTTPS Module 來 GET Request(氣象資料)
系列文
30 天線上自學前端72
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言