首页 » 99链接平台 » 天气预报小程序的开发2(函数文件数据程序开发)

天气预报小程序的开发2(函数文件数据程序开发)

乖囧猫 2024-11-03 22:20:07 0

扫一扫用手机浏览

文章目录 [+]

上篇文章讲述了天气预报小程序的开发第一步:准备天气预报数据,现在进入到第二步。

二、城市列表数据

国内的城市数量和名称基本上是固定的,可以通过一个JSON文件来存储国内省市信息,之后将其上传到云存储中,在云函数中读取并解析,最终返回结构化的数据到客户端。
此整理好的JSON文件在本书的配套资料中有提供——名为cities.json,读者可以直接拿来使用。

天气预报小程序的开发2(函数文件数据程序开发) 99链接平台
(图片来自网络侵删)

打开云开发控制台,在存储管理模块中直接将cities.json文件上传到云存储中。
在工程的cloudfunctions文件夹下新建两个云函数getProvince和getCities,分别用来获取所有一级地区的数据与获取二级地区的数据。
getProvince云函数的index.js文件代码如下:

// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数exports.main = async (event, context) => { // 从云文件读取城市数据 const fileID = 'cloud://cloud1-4ghg65i9b5531b77.636c-cloud1-4ghg65i9b5531b77-1308596385/cities.json' const res = await cloud.downloadFile({ fileID: fileID, }) const buffer = res.fileContent; const jsonString = buffer.toString('utf8'); // 读取所有一级地区 const json = JSON.parse(jsonString); let result = []; json.forEach(item=>{ result.push(item.provinceName); }); return { result:result }}

导读:

这段代码实现了一个云函数,用于读取云存储文件并处理数据:

1. 从环境变量获取预先上传的城市数据文件fileID

2. 使用云函数sdk的downloadFile方法下载该文件

3. 将下载后的文件内容buffer解析为字符串

4. 使用JSON.parse解析json字符串,得到所有的城市数据

5. 遍历数据,仅保留省份名称

6. 将省份名称数组返回给调用方

这样通过云函数下载云存储文件,可以避免小程序需要下载大文件。

优点:

1. 小程序只需要处理关键业务,不用管理文件下载等额外工作

2. 云函数内可方便访问云服务,如云存储、数据库等

3. 云函数具备足够的运行时长和内存空间处理任务

4. 实现业务逻辑与数据隔离,利于维护

5. 云函数自动扩展计算能力,无需考虑容量问题

综上,使用云函数处理云存储文件,可实现小程序和云端的合理分工,是云开发的典型应用场景。

getCities云函数的index.js文件代码如下:

// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数exports.main = async (event, context) => { const province = event.province; console.log(event); const fileID = 'cloud://cloud1-4ghg65i9b5531b77.636c-cloud1-4ghg65i9b5531b77-1308596385/cities.json' const res = await cloud.downloadFile({ fileID: fileID, }) const buffer = res.fileContent; const jsonString = buffer.toString('utf8'); // 读取所有一级地区 const json = JSON.parse(jsonString); let result = []; json.forEach(item=>{ if (item.provinceName == province) { result.push(...item.city); } console.log(result); }); return { result:result }}

导读:

这段代码实现了一个云函数,用于根据省份名称查询该省份下的所有城市:

1. 从传入的event参数中获取省份名称province

2. 和上一个例子一样,先下载存储在云文件的城市数据

3. 解析json,得到所有的城市数据

4. 遍历数据,判断省份名称是否匹配

5. 如果匹配,将该省份的所有城市添加到结果数组result

6. 将结果数组返回给调用方

这样通过把业务逻辑放在云函数,可以实现按省份查询城市的能力,不需要小程序处理大量数据。

优点:

1. 小程序只需要传入关键参数,简化业务逻辑

2. 云函数可以复用下载文件,处理文件等公共逻辑

3. 查询结果可配置缓存,优化速度

4. 可在云函数中连接其他云服务,拓展功能

5. 灵活的触发方式,可供多个端调用

天气预报小程序的开发,第一小部分就正式结束了,如果大家感兴趣,还会继续更形,敬请期待。

本文节选自《微信小程序与云开发:从入门到实践》,内容发布获得作者和出版社授权。

标签:

相关文章