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

首先:

## 安装
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');
 
## 参考
 
##End
 
好了,到这里我想说的就差不多结束了,明天丶后天的天气也知道的差不多了;心中的空缺也弥补上了.... Off work
 
 
越努力 ,越幸运。
 
 
 

基于高德开放平台的 NODE 天气信息组件的更多相关文章

  1. 基于高德开放平台Map Lab的数据可视化

    在Map Lab上创建可视化项目,首先需要添加数据.添加数据有4种方式,分别是: 上传CSV文件添加数据 上传Excel文件添加数据 连接在线数据库添加数据 提供在线数据API添加数据 一.数据上传说 ...

  2. C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理

    在现今很多网站里面,都使用了微信开放平台的扫码登录认证处理,这样做相当于把身份认证交给较为权威的第三方进行认证,在应用网站里面可以不需要存储用户的密码了.本篇介绍如何基于微信开放平台的扫码进行网站的登 ...

  3. KoaHub.js是基于 Koa.js 平台的 Node.js web 快速开发框架

    koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...

  4. IOS基于新浪微博开放平台微博APP

    1.基于新浪微博开放平台APP源码 2.gitHub源代码下载地址 https://github.com/whzhaochao/SinaWeiBoOpen 3.用到的第三放开源库 3.1  RTLab ...

  5. 基于 Koa.js 平台的 Node.js web 快速开发框架KoaHub.js demo 可安装

    KoaHub.js demo KoaHub.js KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Fu ...

  6. KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-yilianyun

    koahub-yilianyun 微信易联云打印机接口 koahub-yilianyun易联云打印机node接口 Installation $ npm install koahub-yilianyun ...

  7. Android—基于微信开放平台v3SDK,开发微信支付填坑。

    接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...

  8. 使用速卖通开放平台云API调用菜鸟组件实现云打印

    公司是跨境电商,使用速卖通平台卖玩具,我们自己研发的ERP是基于速卖通开放平台API,实现订单的发货提交,打印面单等功能 近期公司要求使用菜鸟组件云打印,去平台里看下,有这个API,如下图所示 实现也 ...

  9. 高德开放平台实现批量自定义marker和信息窗体显示

    上篇博客提到云图无法实现文本标签标记marker,这篇博客着重实现在marker点文本标记以及自定义按钮窗体显示. 1.效果: 2.代码实现 <!doctype html> <htm ...

随机推荐

  1. React性能优化之PureComponent 和 memo使用分析

    前言 关于react性能优化,在react 16这个版本,官方推出fiber,在框架层面优化了react性能上面的问题.由于这个太过于庞大,我们今天围绕子自组件更新策略,从两个及其微小的方面来谈rea ...

  2. Centos6 samba服务配置

    1.在阿里虚拟机中配置包源  在ecs的 /etc/yum.repos.d 创建个 alios.repo,内容如下 [alios.$releasever.base.$basearch] name=al ...

  3. 第二章: Identifiers, Keywords and Types

    一:方法的定义和方法的调用 方法的定义:修饰符 方法的返回值 方法名(参数列表){ 方法体 } 如果没有方法的返回值就写成:void 参数列表:参数类型 参数名 方法的调用:方法名(参数值) 第二天: ...

  4. 【Linux杂记】Linux配置静态IP地址,修改主机名、host

    博主使用的系统是:乌班图16.04 1.设置静态IP方法如下: #sudo vim /etc/network/interfaces #修改如下部分: auto eth0//ipconfig命令查看网卡 ...

  5. 21 | 移动测试神器:带你玩转Appium

  6. Confluence5.6.6安装和破解

    1.安装confluence 1. 软件环境说明 # 安装 jdk [root@wiki_5-- jar]# cat /etc/redhat-release CentOS Linux release ...

  7. [hdu-6395]Sequence 分块+矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6395 因为题目数据范围太大,又存在递推关系,用矩阵快速幂来加快递推. 每一项递推时  加的下取整的数随 ...

  8. HDU 2121:Ice_cream’s world II(不定根的最小树形图)

    题目链接 题意 求有向图的最小生成树,且根不定. 思路 最小树形图即求有向图的最小生成树,用的是朱刘算法. 这里不定根,那么可以建立一个虚根,让虚根和所有点相连,权值为一个很大的数(这里直接设为所有边 ...

  9. POJ 3621:Sightseeing Cows(最优比率环)

    http://poj.org/problem?id=3621 题意:有n个点m条有向边,每个点有一个点权val[i],边有边权w(i, j).找一个环使得Σ(val) / Σ(w)最大,并输出. 思路 ...

  10. asp.net core系列 67 Web压力测试工具WCAT

    一.介绍 最近搭建了一套CQRS框架,需要在投入开发前,进行必要的压力测试.Web Capacity Analysis Tool  (Wcat)是一种轻量级HTTP负载生成工具,主要用于衡量受控环境中 ...