1、首先我们看一下云函数结构分为controllers、controller、servicelogic、utils、tools。2、修改入口文件,根据不同的路由进入不同的文件。//云函数入口文件constcloud=require('wx-server-sdk')constresponse=require('./utils/response')cloud.init()//云函数入口函数exports.main=async(event,context)=>{constwxContext=cloud.getWXContext()//这里是重点,小程序传过来的时候需要带上控制器controller和动作函数的名字if(!event.controller||!event.action){returnresponse.error()}try{//根据不同的controller,引入不同的Controller文件constserver=require('./controllers/'+event.controller)//调用里面的方法控制器返回server.getInstance({router:event.controller+'/'+event.action,event:event})[event.action]()}catch(e){returnresponse.error('systemerror')}}重点是前端要把controller和action传过去,然后根据不同的controller和函数名调用不同的文件里面出现的response文件,先给大家看,免得不知道是什么它的意思是。包response.jsmodule.exports={success:function(msg='success',result={},status=0){return{msg:msg,result:result,status:status}},error:function(msg='failure',result={},status=-1){return{msg:msg,result:result,status:status}}}三、创建首先是一个基本的controller之后,一些挂载函数可以在里面挂载登录controller。Base.jsconstcloud=require('wx-server-sdk')cloud.init({env:cloud.DYNAMIC_CURRENT_ENV})constdb=cloud.数据库()constresponse=require('../utils/response');classBase{//构造方法constructor(option={}){this.response=responsethis.request=option.eventthis.router=option.router}staticgetInstance(option={}){if(!this.instance){this.instance=newthis(选项);}返回这个实例;}}module.exports=基础;四可以开始写控件比如写一个controller获取商品列表Goods.jsconstBase=require('./Base')classGoodsextendsBase{//构造方法constructor(option={}){super(option);}asynclist(){//商品列表letlist=[];返回this.response.success('成功',{list:list});}asyncadd(){//添加商品returnthis.response.success('success');}}module.exports=商品;这样一个获取产品列表的链接。如果想写更多的功能,可以在controller里建一个jscontroller,然后继承base。五个小程序的要求是我使用Uniapp开发的目录结构如下。首先,我封装了一个请求工具request.jsexportasyncfunctionrequest(url,data={}){consturl_list=url.split('/')data.controller=url_list[0]data.action=url_list[1]returnnewPromise((r,s)=>{wx.cloud.callFunction({//云函数名name:'request',//传给云函数的参数data:data,success:function(res){letres_data=res.resultr(res_data);},fail:function(res){s(res);}})})}然后把所有需要请求的接口写在api.js文件中import{request}from"./request";//商品列表导出函数goodsList(data){returnrequest('Goods/list',data);}//addgoodsexportfunctiongoodsList(data){returnrequest('Goods/add',data);}然后调用import{goodsList}from"@/api/api.js";//可以获取商品列表letlist=awaitgoodsList();打包完成后,你觉得开发和之前对接后端的形式一样吗?这是使用云端开发开发的小程序,可以参考
