基于云开发的⼩程序实战教程(三)
上篇⽂章中,简单介绍了下开发者⼯具是怎么去⽤的,还介绍了项⽬的基础⽬录结构,以及每个⽂件的作⽤,还配带了⼀些例⼦说明。最后还剩下cloudfunctions⽬录,也就是云开发的⽂件夹介绍。
本章主要内容:⼩程序云开发的基础⽬录结构,cloudfunctions⽬录介绍;编写云函数;云开发的调试。
⼀、⼩程序云开发的⽬录结构介绍
上篇⽂章「」中已经介绍了⼤部分⽂件夹的作⽤,还剩下 cloudfunctions ⽬录,放在这⾥继续介绍。
cloudfunctions⽬录介绍:
cloudfunctions是存放我们所有的云函数的地⽅,也就是相当于我们进⾏数据存储、进⾏数据添加、删除、修改等操作的地⽅。
房屋维修基金从下图可以看到,我们下载的 demo 中⽬前有 4 个⽂件夹,每个⽂件夹其实现在可以理解为,⼀个⽂件夹对应⼀个云函数,也就是已经有了 4 个云函数的例⼦。(和我下图的不太⼀样也没关系,这只是官⽹给提供的例⼦,只是参考看⼀眼他们怎么写的,最终也⽤不到这⼏个例⼦中的代码)
有了云开发的功能,我们直接在这⾥通过云函数,进⽽完成对数据的管理,实现页⾯和数据的交互,完成⼀个完整的⼩程序(也就是所谓的后台,服务器,就不需要我们再去申请了,⾮常⽅便)
⼆、什么是云函数
云函数也是⼀个 js ⽂件,⽤来操作你⼩程序中存储下来的数据,并把结果抛出来。
⽐如删除⼀条数据,我们需要从前端界⾯点击删除按钮发起请求,调⽤到云函数去处理数据,到该条数据并把它从删除,抛出删除成功,这样我们前端的页⾯上就可以知道「这条数据已经被我们删除了,存储数据的数据库中已经没有这条数据了」
还有⼀个云函数的好处是,因为云开发是基于提供的服务,所以能够直接访问到⼀些对外提供的⼀些⽅法,⽐如登录、分享朋友圈、等等我们直接就能够调⽤到
看个例⼦,打开login⽂件夹,可以看到有config.json,index.js,packge.json三个⽂件,下⾯分别来介绍⼀下。
index.js,云函数最主要的⽂件,⾥⾯需要写的就是我们的接⼝函数,也就是说,我们在这⾥对数据库存储的数据做处理(⽐如修改⼀条记录),处理完后再把最新的处理过的结果抛出返回。这样⼦我们前端页⾯交互调⽤到这个⽅法时,就能得到更新后的最新数据了。
看上⾯截图,我们随便打开⼀个login/index.js,看下⼤概代码怎么写的。以下是关键代码,为⽅便理解,我去掉了它原本的注释,加了⾃⼰的⼀些理解和解释。
忘记了怎么开通云服务的,可以去看⽂章⼀「」
// 这句是必须写的,固定格式。没有为啥,规定就是这样⽤的
const cloud =require('wx-server-sdk')
// 初始化 cloud
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
// 配置env的值,默认也不⽤改。
// cloud.DYNAMIC_CURRENT_ENV 默认是当前所处的云环境,如果之前创建了多个云服务环境,就需要改。
// ⼀般初学咱们也不会创建好⼏个,因为⼀个账号只能开通⼀个免费版的基础云服务环境。
})
/**
* event,能够拿到前端传过来的数据,⽐如删除某条数据,从前端把这条数据的id传过来,使⽤event对象去拿到参数
* context,⼀般⽤不到
* 这个⽅法也是固定格式,按这个样⼦在⾥⾯写⾃⼰的逻辑就可以了
*/
exports.main=async(event, context)=>{
// 获取 WX Context (调⽤上下⽂),包括 OPENID、APPID、及 UNIONID(需满⾜ UNIONID 获取条件)等信息
dnf召唤加点// OPENID⽐较常⽤于校验⾝份
// OPENID是⽤户的唯⼀⾝份标识,不管你改号、昵称、头像等等,这个值是不会变的,⼀个⽤户就⼀个值
const wxContext = WXContext()
/
/ 这⾥写你要做的逻辑,⽐如查询列表,调⽤到这⾥就是拿到存下来的数据,并把它 return 出去
// 使⽤ return 把你需要返回给前端的数据返回,这样页⾯就能拿到你的处理结果了
return{
openid: wxContext.OPENID,
美国股市熔断message:"我从云函数把数据带回来了"
}
宅族部落
}
看到这⾥莫着急,具体怎么看出来这段代码写的对不对呢,在下⾯的「云函数调试」模块再去检验
config.json,配置⽂件,刚才提到我们可以⽤云函数很容易地调⽤到对外开放的⼀些API接⼝,但是你得按照它要求的格式来调⽤。这⾥的话,就是我们需要在config.json中声明⼀下,我要调⽤的xx⽅法了,然后在index.js中才能去⽤这个xx⽅法
pckage.json,配置第三⽅依赖库的,和config.json⽤法很像,不过这个更复杂⼀点,因为是想⽤别⼈的第三⽅的库,所以你得先把它下载下来。怎么更新最新版本
河利秀
啥时候需要⽤到⼀些插件库之类的,就在package.json的dependencies对象中加上该插件库名称和版本 ,然后需要⽤npm install安装⼀下,接下来在我们的云函数index.js最开头的位置require引⼊⼀下,就可以⽤了
这⾥提及到的安装,涉及到了npm install 插件名去安装,需要在电脑上安装⼀下node才能够使⽤,如果没安装node,请参考进⾏下载安装。
三、创建云函数
⼤概了解了云函数的基础样⼦之后,我们尝试⾃⼰创建⼀个云函数。
在cloudfunctions⽬录的位置,单击⿏标右键,会弹出上图中的框,选择「新建 Node.js 云函数」,起个名字⽐如 test,敲下回车也就是按下enter键后,会⾃动⽣成⼀个云开发的函数⽂件夹。
看下⾃动⽣成的代码,你会发现,和第⼆点内容「⼆、什么是云函数」中介绍的云函数结构是⼀样的。
四、云函数的调试