返回

树形分类页面的开发:schema代码自动生成与RBAC角色权限

开发工具

思维导图

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角色权限管理功能进行了实操。这些功能都可以帮助我们大大提升开发效率。希望大家能够熟练掌握这些功能,并将其应用到自己的项目中。