基于高德开放平台的 NODE 天气信息组件

看看了画在手上的Armani手表,马上就快到了下班的时间了,心里总觉的空唠唠的, 好像空缺了什么一样,仔细的想了一想,微微叹了一口气,觉得是时候在这里和大家分享一下原因了........

首先:

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

在使用本扩展之前,你需要去 [高德开放平台]( https://lbs.amap.com/dev/id/choose) 注册账号,然后创建应用,获取应用的 API Key。
 
就是它↓↓↓:

万成不变,不离其中 引入依赖,顺便设定为严格模式:

/**设置为严格模式*/
'use strict';

/**
 * dependence
 */
const https = require('https');
const util = require('util');
const querystring = require('querystring');

下面就是重要内容代码块,命名:weather.js(random).

/**
 *  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');

然后就可以

### 获取实时天气 
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
 
 
越努力 ,越幸运。
 
 
 

猜你喜欢

转载自www.cnblogs.com/pingtouge/p/11271847.html