更新记录
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
文档
论坛
前提条件
注册好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 | 对象 | 设置其他条件 |
介绍
框架会为每个controller
、services
注入一个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