更新记录

0.0.9(2021-03-17)

  • 适配手机端;
  • 调整前端目录结构;

0.0.8(2020-09-02)

  • 精简优化云函数依赖包
  • 更新通用crud到最新版
  • 修复分页显示问题

0.0.6(2020-09-02)

  • 精简优化云函数依赖包
  • 更新通用crud到最新版
  • 修复分页显示问题
查看更多

平台兼容性

阿里云 腾讯云 支付宝小程序云
×

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


永久开源免费

https://github.com/cool-team-official/cool-admin-unicloud

文档

https://cool-js.com

论坛

https://bbs.cool-js.com

前提条件

注册好uniCloud账户密码,并新建一个云空间,云函数选择云空间

快速开发

1、编写云函数

cool/controller/app下新建test.js文件夹内容如下:

'use strict';
/**
 * 日志
 */
const crud = require("crud");
module.exports = {
    ...crud,
    /**
     * 初始化
     */
    async init() {
        const { params } = this.ctx;
        return { table: 'sys_log' };
    },
}

这样我们就完成了一个云函数的增删改查,拥有的方法:

  • /app/test/add 新增
  • /app/test/delete 删除
  • /app/test/update 更新
  • /app/test/info 单个信息
  • /app/test/list 列表信息
  • /app/test/page 分页查询(包含模糊查询、字段全匹配等)

2、调用云函数

分页查询
uniCloud.callFunction({
    name: 'cool',
    data: { 
        url: '/app/test/page',
        params: {
            size: 20, // 每页条数 默认15
            page: 1, // 第几页 默认 1
            order: 'createTime', // 排序字段 默认 'createTime'
            sort: 'desc', // 排序方向  默认'desc'
            keyWord: '啊平',  // 模糊查询关键字, 对应后端云函数 init 对象 pageOption keyWordLikeFields 配置
            age: 20, // 可以筛选其他全等于字段  对应后端云函数 init 对象 pageOption fieldEq 配置
        }
    }
  }).then(res => {
      console.log(res)
  });

相关后端云函数初始化配置可以查看初始化配置

新增
uniCloud.callFunction({
    name: 'cool',
    data: { 
        url: '/app/test/add',
        params: {
            name: '啊平',
            age: 20
        }
    }
  }).then(res => {
      console.log(res)
  });
删除
uniCloud.callFunction({
    name: 'cool',
    data: { 
        url: '/app/test/delete',
        params: {
            ids: ['1', '2']
        }
    }
  }).then(res => {
      console.log(res)
  });
修改
uniCloud.callFunction({
    name: 'cool',
    data: { 
        url: '/app/test/update',
        params: {
            _id: '1',
            name: '啊平',
            age: 21
        }
    }
  }).then(res => {
      console.log(res)
  });
单个信息
uniCloud.callFunction({
    name: 'cool',
    data: { 
        url: '/app/test/info',
        params: {
            _id: '1'
        }
    }
  }).then(res => {
      console.log(res)
  });
列表
uniCloud.callFunction({
    name: 'cool',
    data: { 
        url: '/app/test/list',
        params: {}
    }
  }).then(res => {
      console.log(res)
  });

配置

初始化一个云函数,在cool/controller

'use strict';
/**
 * 日志
 */
const crud = require("crud");
module.exports = {
    ...crud,
    /**
     * 初始化
     */
    async init() {
        const { params } = this.ctx;
        return {
            table: 'sys_log',
            pageOption: {
                fieldEq: ['name'],
                keyWordLikeFields: ['action', 'name', 'ipAddr'],
                where: {
                    departmentId: params.departmentIds ? db.command.in(params.departmentIds.split(',')) : []
                }
            }
        };
    }
}

对象

参数 类型 必填 说明
table 字符串 云数据库的表名
pageOption 字符串 分页信息查询条件配置

pageOption

参数 类型 说明
keyWordLikeFields 数组 模糊查询匹配的字段,对应客户端参数keyWord
fieldEq 数组 筛选字段相等
where 对象 设置其他条件

介绍

框架会为每个controllerservices注入一个ctx对象,它包含在整个请求的生命周期。

内容

每个ctx都包含有以下内容:

参数 说明
currentUser 当前登录的用户
config 配置信息, 对应cool/config.js
request 原始的云函数context
params 业务参数
services 所有的services对象
utils 工具函数

currentUser

参数 类型 说明
roleIds 数组 角色ID数组
userId 字符串 用户ID
username 字符串 用户名
passwordVersion 数字 密码版本

db

对应公告函数common/db

参数 类型 说明
baseDB 对象 原始的数据库对象
command 对象 操作指令
collection 函数 获得对应的数据表
add 函数 新增,参数表名需要新增的数据
delete 函数 删除,参数表名id数组或者按逗号隔开的字符串
update 函数 更新,参数表名需要更新的数据
info 函数 信息,参数表名表ID
one 函数 单个,参数表名条件
list 函数 列表,参数表名
page 函数 分页,参数表名条件第几页每页条数排序字段排序方向

utils

参数 类型 说明
uuid 函数 生成唯一ID
md5 函数 MD5加密
moment 函数 时间操作工具,文档
lodash 函数 强大的js工具库,文档
jwt 函数 生成token
getIpAddr 函数 获得IP地址,如:中国福建厦门市

QQ群

2群:539478405

微信群

微信公众号

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问