在工程的miniprogram文件夹下新建一个名为utils的文件夹,用来存放工具模块文件。在utils文件夹下新建一个名为network.js的文件,编写代码如下:
const showapi_appid = "580xx";const showapi_sign = "74b9fcd59b844b98b6427dxxxxxf4e2e9";var network = { getWeatherData:function(area, callback) { // 请求天气数据 let req = wx.request({ url: 'https://route.showapi.com/9-2', // 接口URL data: { // 参数 area:area, needIndex:1, needMoreDay:1, needAlarm:1, needHourData:1, showapi_appid:showapi_appid, showapi_sign:showapi_sign, showapi_timestamp: Date.now() }, method:'GET', // 请求方法设置为GET success:(res)=>{ callback(res, null); }, fail:(res)=>{ callback(null, res); } }); }}exports.network = network;
导读 :
这段代码实现了使用腾讯云ShowAPI获取天气数据的功能:

1. 定义了showapi_appid和showapi_sign作为认证信息
2. 封装了getWeatherData方法发送天气数据请求
3. 指定了接口URL和请求参数,包括地区、返回数据格式等
4. 调用wx.request发送GET请求
5. 在回调函数中处理成功和失败两种情况
6. 获取到的数据通过callback返回
7. 最后导出network对象供其他文件调用
使用第三方服务的优点:
1. 可以利用强大的第三方数据和服务,不需要自己开发
2. 通过简单的配置就可以获得丰富的功能
3. 有专门的接口文档,开发效率高
4. 小程序可以专注自己的业务,继承云端能力
5. 第三方服务商会持续优化产品,美工和数据更加专业
总之,合理利用第三方服务能大大增强小程序的能力,是云开发的重要方式之一。
为了验证编写的网络工具能否正常地将天气数据请求到,可以在index.js中添加一个测试按钮,实现如下测试方法:
let networkModule = require('../../utils/network.js')networkModule.network.getWeatherData('上海',(res, error)=>{ console.log(res, error);})
导读:
这段代码演示了如何调用网络请求模块network.js:
1. 使用require方法导入network.js模块
2. require返回的值networkModule就包含了network.js导出的对象和方法
3. 这里我们需要调用network.network.getWeatherData方法
4. 传入参数'上海'表示查询上海的天气
5. getWeatherData方法会发起网络请求获取天气数据
6. 在回调函数中,通过res获取返回结果,error获取可能的错误信息
7. 这里只是简单地把结果打印出来
8. 可以在回调函数中处理天气数据,更新页面等操作
这样通过模块化分离了网络请求代码,页面逻辑只需要关注数据处理。
优点:
1. 代码复用,避免重复编写请求代码
2. 页面代码更简洁
3. 网络请求代码独立易于维护
4. 可以考虑将模块发布成npm包,更好地重用
模块化编程是小程序开发的重要能力,可以大幅提高代码的可维护性。
本篇文章讲述天气预报小程序的开发第一部分,由于篇幅有限第二部分城市列表数据更新在下篇文章,敬请期待。点个关注,不迷路哦。
本文节选自《微信小程序与云开发:从入门到实践》,内容发布获得作者和出版社授权。