Taro 云开发
# Taro 云开发
环境:Taro@3.x
# 模板目录结构
按照Taro官方的文档配置云开发模板 (opens new window)。
- 配置 project.config.json
主要是配置以下几个字段:
{
"miniprogramRoot": "client/dist/", // 编译打包后的代码目录
"projectname": "miniApp",
"description": "小程序",
"cloudfunctionRoot": "cloud/functions/", // 云函数目录
"cloudfunctionTemplateRoot": "cloudfunctionTemplate", // 云开发的云函数测试数据模板所在的目录
...
}
# 编写云函数
以登录云函数为示例,云函数目前为:cloud/functions/login/index.js
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
// 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回
let { OPENID, APPID, UNIONID } = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
}
}
# 安装云函数依赖
云函数的运行环境是在nodejs在,还需要安装云函数所需要的依赖,比如wx-server-sdk。新建一个package.json文件:
{
"name": "login",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest"
}
}
打开终端,进入云函数目录下,运行npm install
or yarn
,安装依赖。
# 调用云函数
到这里我们可以在client下的任意页面调用云函数。在此之前我们还需要做一下初始化操作。
- init
配置云开发的环境,这些的env参数为云开发的环境ID,可通过微信开发者工具的云开发面板找到。
componentDidMount() {
Taro.cloud.init({
env: 'xxx-mxq8s'
})
}
- 调用
login = () => {
Taro.cloud
.callFunction({
name: 'login',
data: {},
})
.then((res) => {
console.log('login---', res.result)
});
};
这样,我们就已经写好了调用云函数的代码了。接下来还需要将云函数上传到云开发环境中。
# 上传云函数
进入 client 目录,在此目录下运行相关编译预览或打包命令,启动小程序,用微信开发者工具打开小程序项目,注意,这里打开项目时选择的目录是整个项目目录,而不是dist目录。
找到微信开发者工具资源管理器下云函数目录login
右键,选择【上传并部署:云端安装依赖(不上传node_modules)】
上传完成之后,就可以在页面中点击按钮调用云函数啦~