前言
uni-app未对微信小程序云做兼容适配,所以选择了uni-app框架又想用小程序云的小朋友通常是在微信开发者工具单独开一个云项目,这种分开发的模式。
而我选择的方式是在uni-app项目中新建一个 /cloudfunctions 文件夹作为云函数根目录,在其中编写云函数代码。
云函数根目录配置的具体方法参考前文:
uni-app实现微信小程序云开发
此文就是关于如何在 uni-app 写有效的云函数
工具
- Hbuilder X
- 微信开发者工具
方法
导入查看项目
前文通过HBulider 运行项目后已在 /unpackage/dist/dev 生成了小程序代码,我们将其导入到微信开发者工具
可以看到 /cloudfunctions 已经作为云函数目录,右键可以切换运行环境,这里我们选择dev
快速获取云函数模板
如果对云函数特别熟悉可以直接在HBulider快乐的敲代码了,这里我们偷个懒在微信开发者工具中随便新建个云函数获取其模板
对着 /cloudfunctions 右键选择 “新建Node.js云函数”,我们新建一个叫aaa的云函数
这里就快速获取到了云函数模板:
- index.js
- package.json
将它们复制到ani-app项目中对应新建的云函数,这里我新建了一个叫loginCheck的云函数
记住将 package.json 的name由 aaa 改为云函数名字 loginCheck
微信开发者工具中,loginCheck已被同步过来
部署云函数
小程序云函数是运行在小程序云服务器上,等于说微信在自己服务器上为我们搭建了一个node后台。所以我们要运行云函数就需先把云函数上传部署到云端:
运行云函数
如果对小程序云开发不熟悉的建议先看官方教程
我们先看一下云函数 index.js 的代码在做些什么:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
默认返回的是一些id
我们试下在 /pages 的 index.vue 调用云函数获取这些id:
onLoad: function() {
wx.cloud.callFunction({
name: 'loginCheck'
}).then((res) => {
console.log(res)
})
}
微信开发者工具运行结果:
成功获取到了返回结果!至此小程序云已彻底打通,去按照自己的想法开发吧!!