看看了画在手上的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. Github项目备份与更新

    需求 假如现在想对使用到的一些Github上的开源组件进行备份,采用自建Gitlab服务器的方式进行备份保存,并且组件需定时保持与Github更新. 总体步骤 组件备份- 整体步骤如下: a.搭建gi ...

  2. 使用elasticsearch启动项目报错failed to load elasticsearch nodes 。。。。。No type specified for field [name]

    failed to load elasticsearch nodes .....No type specified for field [name]翻译: 加载ElasticSearch节点失败... ...

  3. VMware Tools安装,设置centos全屏、可拖入文件功能

    Mr·Hu原创作品.转载请注明出处http://www.cnblogs.com/huxiuqian/p/7843126.html 由于在VM中使用小屏太不方便,所以进行全屏化,亦可进行文件共享. 1. ...

  4. vue回顶部 组件 可以直接使用

    <template> <div id="goTop"> <div class="goTop" v-show="goTop ...

  5. 【HDU - 2612】Find a way

    -->Find a way 直接上Chinese  Descriptions: hsj和lsh最近迷上了pokemon go的游戏.在双十一大物期中考试来临之前,他们想抓一只稀有土拨鼠来攒攒人品 ...

  6. 我是这么学习Selenium元素定位操作的

    写在前面 做web自动化测试都有体会,本质也就是通过操作页面元素对象来模拟用户操作行为,那么首先我们先找到这些元素对象,然后才能进行一系列操作. 我们得先告诉自动化工具或者说代码要操作那个元素,毕竟代 ...

  7. 微服务-springboot-activiti工作流

    idea中安装aciviti并使用,链接地址:https://blog.csdn.net/qq_41728540/article/details/79506463 一.创建springboot项目,勾 ...

  8. 认识Mybatis的一二级缓存

    认识Mybatis的一二级缓存 一次完整的数据库请求,首先根据配置文件生成SqlSessionFactory,再通过SqlSessionFactory开启一次SqlSession,在每一个SqlSes ...

  9. Java连接MYSQL进行操作(增,删,改)

    连接数据库,并用表格输出数据 创建insex.jsp <table border="1" width="80%" align='center'> & ...

  10. Oracle 数据库连接不上 登录一直卡死

    在此记录下半个月来,oracle数据库本地神奇地连接不了的事件. 描述下我的情况: (1)使用navicat连接本地的数据库,结果一直卡[正在连接中(无响应)]: (2)使用PL/SQL连接本地的数据 ...