Node.js-20行代碼實現(xiàn)一個天氣預報

前言

我首先得承認,標題有點扯了。不過下面主要是干貨,使用Node.js確實能夠根據(jù)自己的想法去快速構建一件事情?,F(xiàn)在將構建過程呈現(xiàn)給大家

新建項目

在本地目錄新建文件夾,命令行模式到新建的文件夾weather下,執(zhí)行<code>npm init </code>

npm init

按照提示輸入項目相關內(nèi)容或者使用默認值。最終文件結(jié)構為

+ weather
  - package.json  

找一個可用的天氣預報api

現(xiàn)在有很多提供免費天氣預報api服務的廠商,大家可以隨意找。我使用的是阿里云里面一個免費的 api https://market.aliyun.com/products/57126001/cmapi014302.html
使用淘寶賬號可以購買。 購買成功后會將AppKey AppSecret AppCode信息發(fā)送給你,本次我們只用到了 AppCode。

使用request 發(fā)送get請求

request作為Node.js的一個發(fā)送請求的第三方模塊在社區(qū)中非常受歡迎,使用方式輕巧,安裝簡單。 安裝方式只需要<code>npm install request --save</code> 即可

npm install request --save

代碼模型

根據(jù)天氣預報api 可以看到請求格式為get 類型,需要在發(fā)送get的時候 添加Header信息。

使用方法
請求Header中添加的Authorization字段;
配置Authorization字段的值為“APPCODE + 半角空格 +APPCODE值”。
格式:
> Authorization:APPCODE AppCode值

根據(jù)api 說明,那么這個請求應該是這樣的

var request = require('request');

var options = {
  url: 'http://jisutqybmf.market.alicloudapi.com/weather/query',
  headers: {
    Authorization: 'APPCODE AppCode值'
  }
};

function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    var info = JSON.parse(body);
   console.log(info)
  }
}

request(options, callback);

請求發(fā)送出去,拿到服務器返回的天氣值。下一步就是我們來處理下,顯示我們想要的結(jié)果。
根據(jù)api 找到自己城市的cityid,加在請求uil參數(shù)上,即可。

最終代碼

var request = require('request');
var options = {
  url: 'http://jisutqybmf.market.alicloudapi.com/weather/query?cityid=24',
  headers: {
    'Authorization': 'APPCODE xxxxx你的購買appcode值xxxxx'
  }
};
function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    var info  = JSON.parse(body)
    var allweather = info.result;
    var city = allweather.city,
        date = allweather.date,
        week = allweather.week,
        nowtemp = allweather.temp;
    console.log("現(xiàn)在是天氣預報時間:今天是",date,week);
    console.log(city,"的溫度是",nowtemp);
  }
}
request(options, callback);

打印一下 查看結(jié)果

C:\Users\zengyang\Desktop\weather> node .\cityweather.js
現(xiàn)在是天氣預報時間:今天是 2017-07-07 星期五
上海 的溫度是 34
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容