前言
我首先得承認(rèn)榔昔,標(biāo)題有點(diǎn)扯了。不過下面主要是干貨凿跳,使用Node.js確實(shí)能夠根據(jù)自己的想法去快速構(gòu)建一件事情〖悖現(xiàn)在將構(gòu)建過程呈現(xiàn)給大家
新建項(xiàng)目
在本地目錄新建文件夾,命令行模式到新建的文件夾weather下控嗜,執(zhí)行<code>npm init </code>
npm init
按照提示輸入項(xiàng)目相關(guān)內(nèi)容或者使用默認(rèn)值茧彤。最終文件結(jié)構(gòu)為
+ weather
- package.json
找一個(gè)可用的天氣預(yù)報(bào)api
現(xiàn)在有很多提供免費(fèi)天氣預(yù)報(bào)api服務(wù)的廠商,大家可以隨意找疆栏。我使用的是阿里云里面一個(gè)免費(fèi)的 api https://market.aliyun.com/products/57126001/cmapi014302.html
使用淘寶賬號(hào)可以購買曾掂。 購買成功后會(huì)將AppKey AppSecret AppCode信息發(fā)送給你,本次我們只用到了 AppCode壁顶。
使用request 發(fā)送get請(qǐng)求
request作為Node.js的一個(gè)發(fā)送請(qǐng)求的第三方模塊在社區(qū)中非常受歡迎珠洗,使用方式輕巧,安裝簡單若专。 安裝方式只需要<code>npm install request --save</code> 即可
npm install request --save
代碼模型
根據(jù)天氣預(yù)報(bào)api 可以看到請(qǐng)求格式為get 類型许蓖,需要在發(fā)送get的時(shí)候 添加Header信息。
使用方法
請(qǐng)求Header中添加的Authorization字段调衰;
配置Authorization字段的值為“APPCODE + 半角空格 +APPCODE值”膊爪。
格式:
> Authorization:APPCODE AppCode值
根據(jù)api 說明,那么這個(gè)請(qǐng)求應(yīng)該是這樣的
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);
請(qǐng)求發(fā)送出去嚎莉,拿到服務(wù)器返回的天氣值米酬。下一步就是我們來處理下,顯示我們想要的結(jié)果趋箩。
根據(jù)api 找到自己城市的cityid赃额,加在請(qǐng)求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)在是天氣預(yù)報(bào)時(shí)間:今天是",date,week);
console.log(city,"的溫度是",nowtemp);
}
}
request(options, callback);
打印一下 查看結(jié)果
C:\Users\zengyang\Desktop\weather> node .\cityweather.js
現(xiàn)在是天氣預(yù)報(bào)時(shí)間:今天是 2017-07-07 星期五
上海 的溫度是 34