看看了画在手上的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. 面试还不知道BeanFactory和ApplicationContext的区别?

    接口 BeanFactory 和 ApplicationContext 都是用来从容器中获取 Spring beans 的,但是,他们二者有很大不同 我看到过很多问 BeanFactory 和 App ...

  2. 深入解析Hyperledger Fabric启动的全过程

    在这篇文章中,使用fabric-samples/first-network中的文件进行fabric网络(solo类型的网络)启动全过程的解析.如有错误欢迎批评指正. 至于Fabric网络的搭建这里不再 ...

  3. Python自学day-2

    一.模块     模块分两种:标准库和第三方库,标准库是不需要安装就可以使用的库.     import [模块名]:导入一个库,优先是在项目路径中寻找.自定义模块名不要和标准库模块名相同.   sy ...

  4. Xshell连接WSL

    Xshell连接WSL Windows的Windows Subsystem for Linux很好用, 可以直接使用Linux的CLI模式, 对于开发来说很友好. 安装 Windows 10系统上, ...

  5. 基于STM32之UART串口通信协议(四)Printf发送

    一.前言 1.简介 前面在UART发送中已经讲解过如何调用HAL库的HAL_UART_Transmit函数来实现串口发送,而在调用这个函数来实现串口发送的话,但是在发送数据或者字符的时候,需要将数据或 ...

  6. Linux 配置 history 命令显示操作时间、用户和登录 IP

    一.在配置文件中(/etc/bashrc 或者 /etc/profile 或者~/.bash_profile 或者 ~/.bashrc)添加如下配置 #vim /etc/bashrc    // 进到 ...

  7. C语言版数据结构笔记

    现在把以前学的数据结构知识再理一遍,上机测试.首先最重要的是链表.在我看来,链表其实就是由一个个结构体连接而成的,创建一个链表有多种方式,头插法,尾插法等,这里采用的是尾插法.表述有不对的地方,欢迎更 ...

  8. mount -o remount,rw /命令什么意思

    1.关于如何改变linux中,对只有Read-only filesystem的文件,如何改为为可写.可读权限? I.可以执行 mount -o remount,rw /II.执行完毕后,会出现以下字样 ...

  9. Web安全深度剖析

    Web安全深度剖析 链接:https://pan.baidu.com/s/15NulgWNzQ2JPCdn9q1jE-g 提取码:6y83    Web安全深度剖析>总结了当前流行的高危漏洞的形 ...

  10. CSU 1320:Scoop water(卡特兰数)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1320 题意:……是舀的时候里面必须要有1L,而不是舀完必须要有1L. 思路:才知道是卡特兰数. 这 ...