uniapp之云函数的开发和调用

3,062 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第8天,点击查看活动详情

简介

uniapp中使用云函数:故名之意,云函数是在云中运行的函数,无需搭建和购买,只需要编写云函数的代码并发布到云端即可调用。而且云函数之间可以互相调用,是国内云厂家联合打造基于serverless方式的云平台。

过程

创建

  • 创建函数文件夹 在创建项目时,选择云函数的选项或者在项目自行创建文件夹

image.png

  • 创建云服务并上传云函数 咱们在uniCloud文件夹中创建一个cloudfunctions文件夹,这个文件夹表示一个云函数分类,在这个文件夹右击,选择新建云函数

image.png

右击新建云函数文件夹,选择同步所有云函数、公共模块及actions 这样就完成了上传云函数,最后在clound控制台中查看,注意:必须要在hbuilderx登录,如果后期有修改则必须在修改后重新上传到云端才能生效,否则不生效。

image.png

编辑

  • 编辑云函数
  1. 入口 在新建文件夹中创建index.js,并在内导出一个main方法参数为event(客户端函数)和context(上下文)
exports.main = async (event, context) => {}
  1. 请求云函数 方法:await uniCloud.httpclient.request,方法类似于axios请求,可以加上token、传参、请求方式、返回数据格式比如JSON、定义header请求头:application/json这些都是可以
const classify_res = await uniCloud.httpclient.request('https://xxx',{
    method:'POST',
    dataType:'json',
    header:{
            "Content-Type":"application/x-www-form-urlencoded"
    },
    data:{
            access_token:'token'
    }
})
  1. 导出 把调用云函数之后成功的数据返回给客户端,如果不导出客户端将无法接受返回因此调用失败
return classify_res.data

调用

在开发具体项目中,通过uniCloud.callFunction进行调用,unicloud是uniapp中调用云函数方法,其中name为云函数名称注意:这个是必填项!,data为传输参数编码base64编码,success为结果,跟axios请求方法类似,简洁明了

uniCloud.callFunction({
    name:'imgeClassify',
    data:{
            image:b64,
    },
    success:res=>{
            console.log(res)
    }
})

资料分享

uniapp云函数文档