基於高德開放平臺的 NODE 天氣信息組件

看看了畫在手上的JQuery手錶,立刻就快到了下班的時間了,內心總覺的空嘮嘮的, 好像空缺了什麼同樣,仔細的想了一想,微微嘆了一口氣,以爲是時候在這裏和你們分享一下緣由了........html

首先:git

## 安裝
npm install util npm install https npm install querystring
## 配置

在使用本擴展以前,你須要去 [高德開放平臺]( https://lbs.amap.com/dev/id/choose) 註冊帳號,而後建立應用,獲取應用的 API Key。
 
就是它↓↓↓:

 

萬成不變,不離其中 引入依賴,順便設定爲嚴格模式:github

/**設置爲嚴格模式*/
'use strict'; /** * dependence */
const https = require('https'); const util = require('util'); const querystring = require('querystring');

 

下面就是重要內容代碼塊,命名:weather.js(random).npm

/** * Weather. */
const Weather = { /** * url */ url: "https://restapi.amap.com/v3/weather/weatherInfo?%s", /** * API Key */ key: "xxxxxxxxxxxxxxxxxxxxxx", /** * @param string city * @param string format * * @return mixed|string */ getLiveWeather: (city, format = 'json') => { return Weather.getWeather(city, 'base', format); }, /** * @param string city * @param string format * * @return mixed|string */ getForecastsWeather: (city, format = 'json') => { return Weather.getWeather(city, 'all', format); }, /** * @param string city * @param string type * @param string format * * @return mixed|string * * @throws HttpException * @throws InvalidArgumentException */ getWeather: (city, type, format = 'json') => { if (!['base', 'all'].includes(type.toLowerCase())) { console.error('Invalid type value(base/all):', type); return; } if (!['json', 'xml'].includes(format.toLowerCase())) { console.error('Invalid response format(json/xml):', format); return; } let query = querystring.stringify( { key: Weather.key, city: city, output: format.toLowerCase(), extensions: type.toLowerCase() } ); let getUrl = util.format(Weather.url, query); https.get(getUrl, res => { const buffer = []; res.on('data', data => { buffer.push(data); }); res.on('end', () => { let data = Buffer.concat(buffer).toString('utf-8'); console.log("json" === format ? JSON.parse(data) : data); }); }).on('error', err => { console.log(err); }); } }; //暴露接口
module.exports = Weather;

 

## 使用
在其它JS中引入下列代碼:
const weather = require('./weather');

而後就能夠json

### 獲取實時天氣 
response = weather.getLiveWeather('上海');
 
### 獲取天氣預報
response = weather.getForecastsWeather('上海', 'json');
 
### 獲取 XML 格式返回值
第三個參數爲返回值類型,可選 `json` 與 `xml`,默認 `json` :
response = weather.getLiveWeather('上海', 'xml');
 
## 參考
[高德開放平臺]( https://lbs.amap.com/dev/id/choose)
 
##End
 
好了,到這裏我想說的就差很少結束了,明天丶後天的天氣也知道的差很少了;心中的空缺也彌補上了.... Off work
 
 
越努力 ,越幸運。
 
 
 

原文出處:https://www.cnblogs.com/pingtouge/p/11271847.htmlapi

相關文章
相關標籤/搜索