小程序开发提供了云函数的功能, 把函数写好, 上传至云,然后就能像调用本地函数一样调用云函数了,涉及到一些密匙之类的不妨试试放在云端调用更安全, 是不是很神奇让我们来看看吧!
一 新建项目,建议自己申请一个账号,用测试账号是没有云开发的选项的,下图这个
二 点击云开发 , 按要求填写参数生成云开发实例,很简单
三 需要看下project.config.json(一般在项目的根目录下) 中的云函数根目录, 没有也可以生成一个,如下
{
"miniprogramRoot": "miniprogram/", //小程序的根目录
"cloudfunctionRoot": "cloudfunctions/", //云函数的根目录 所有的云函数都在这个目录下
"setting": { //基础配置
"urlCheck": true,
"es6": true,
"postcss": true,
"minified": true,
"newFeature": true
},
"appid": "wx5f7f013e847d189d",
"projectname": "say_eat",
"libVersion": "2.2.5",
}
四 定义云函数,并上传至云端(前提已经设置好了云开发的配置),我们在cloudfunctions目录下试着定义一个计算两个数相乘的方法
右击cloudfunctions创建云函数,里边会自带index.js 和package.jsjon 自己修改下
// index.js 是入口文件,*必须定义并导出main函数,云函数被调用时会执行该文件导出的 main 方法
// event 包含了调用端(小程序端)调用该函数时传过来的参数,同时还包含了可以通过 getWXContext 方法获取的用户登录态 `openId` 和小程序 `appId` 信息
// 目录结构是 cloudfunctions/multiplication/index.js
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
let { a, b} = event;
let { OPENID, APPID } = cloud.getWXContext() // 这里获取到的 openId 和 appId 是可信的
let product = a * b;
return { //这里定义返回的对象,也可以是变量,在后边的success中接受到
OPENID,
APPID,
product
}
}
六 最后一步开始调用啦
//调用分两种 回调 和 promise , 都差不多啦, 这里是没有
wx.cloud.callFunction({
// 需调用的云函数名
name: 'multiplication',
// 传给云函数的参数 也就是上边的event对象
data: {
a: 12,
b: 19,
},
// 成功回调
success: res => {
console.log(res);
},
fail: err => {
console.error('[云函数] [login] 调用失败', err)
}
})
// 当然 promise 方式也是支持的
wx.cloud.callFunction({
name: 'multiplication',
data: {
a: 12,
b: 19
}
}).then(console.log)
.catch(console.log)
到这里一个云函数就定义完毕了, 是不是很简单呢,如果有什么问题,欢迎留言.
感谢您的阅读!如果文章中有任何错误,或者您有更好的理解和建议,欢迎和我联系!