树形分类页面的开发:schema代码自动生成与RBAC角色权限
2023-10-12 04:49:52
思维导图
uniCloud作为云开发平台,提供了非常丰富的各种功能。 schema就是其中一项比较强大的功能。通过schema文件,可以实现数据库设计的自动生成,并且代码是通过工具自动生成的。相较于其他开发框架,开发人员无需再通过手写的方式来进行代码开发,同时这种方式也对数据库结构的修改和维护提供了很大便利。
在之前的分享中,我们已经介绍了如何通过uniCloud构建基础的树形分类页面,在第二部分中,我们会介绍如何通过schema自动生成管理端代码。
schema代码自动生成
在日常业务开发中,我们会频繁地与数据库打交道,在设计数据库的过程中,通常会碰到创建大量表的情况,如果每次都通过手写的方式去创建表,效率会非常低下,在有schema工具的情况下,我们可以通过文件来生成相关的表结构以及操作表的代码。uniCloud的schema就是一种非常方便的工具,其语法简单明了,我们只需要在文件中描述数据库的结构,以及对表和字段的操作即可。schema文件编写完成后,会通过工具自动生成相关的代码。这样就能帮我们大大提升开发效率,接下来我们就通过例子来介绍如何使用schema。
在uniCloud开发平台上,找到schema功能,并创建一个名为“category”的schema文件。
在“category”schema文件中,添加如下的代码:
{
"tables": {
"category": {
"fields": [
{
"name": "id",
"type": "int",
"primary_key": true,
"auto_increment": true
},
{
"name": "name",
"type": "varchar(255)",
"not_null": true
},
{
"name": "parent_id",
"type": "int",
"default": 0
},
{
"name": "level",
"type": "int",
"default": 0
},
{
"name": "sort",
"type": "int",
"default": 0
}
]
}
}
}
这样,我们就通过schema的方式定义了“category”表的结构。下面,我们需要根据schema文件生成代码。
在uniCloud开发平台上,找到“category”schema文件,点击“生成代码”按钮。
生成代码后,我们就可以在“category”表的代码中看到自动生成的代码。
// category.js
const db = uniCloud.database()
const categoryCollection = db.collection('category')
exports.main = async (event, context) => {
// 创建category记录
const res = await categoryCollection.add({
name: '服装',
parent_id: 0,
level: 1,
sort: 1
})
return res
}
接下来,我们就可以通过调用categoryCollection来对“category”表进行操作了。
系统提供的RBAC角色权限管理功能
RBAC(Role-Based Access Control)是一种基于角色的访问控制模型,它允许管理员为用户分配不同的角色,并根据角色来授予用户不同的权限。uniCloud提供了丰富的RBAC角色权限管理功能,我们可以通过这些功能来实现对系统的权限控制。
在uniCloud开发平台上,找到“角色权限”功能,并创建一个名为“admin”的角色。
在“admin”角色中,添加如下的权限:
- uni-id:auth.login
- uni-id:auth.logout
- uni-id:auth.register
- uni-id:auth.sendPasswordResetEmail
- uni-id:auth.resetPassword
- category:add
- category:delete
- category:get
- category:update
这样,我们就为“admin”角色分配了相应的权限。
接下来,我们需要将“admin”角色分配给用户。
在uniCloud开发平台上,找到“用户管理”功能,并创建一个名为“admin”的用户。
在“admin”用户中,添加“admin”角色。
这样,我们就将“admin”角色分配给了“admin”用户。
现在,当“admin”用户登录系统后,就可以使用“admin”角色所拥有的权限了。
结语
在本文中,我们介绍了如何通过schema自动生成管理端代码,并就系统提供的RBAC角色权限管理功能进行了实操。这些功能都可以帮助我们大大提升开发效率。希望大家能够熟练掌握这些功能,并将其应用到自己的项目中。