这篇博客由 Leandro Martins 创作,并最初发表在使用 NocoBase 构建应用程序目录。
本文的目标是展示 NocoBase 在无代码开发 Web 应用方面的潜力和易用性。作为一个案例研究,我将创建一个应用程序目录来辅助架构治理。此案例将使用 NocoBase 的功能,包括建模、安装、创建表格、菜单、表单、图表以及工作流。
本文将使用以下技术:NocoBase、Postgres 和 Docker。
什么是 NocoBase?
NocoBase 是一个开源平台,由 JavaScript 编写,基于 NodeJS、TypeScript 和 AntDesign,旨在无需编码即可创建自定义应用程序。这是一个低代码后端解决方案,可视化创建表格、自定义表单、工作流自动化和定制界面。
NocoBase 的主要亮点:
- 活跃的社区:一个高度活跃的论坛,用于插件开发和问题解决。
- 不断审查的代码:GitHub 上有频繁更新和贡献,拥有超过 13k 星标。
- 数据库兼容性:支持主要的关系数据库,如 Postgres 和 MySQL。
- 可视化数据建模:使用 Main Database 插件可视化定义表格和数据。
- 广泛的插件库:提供各种免费和付费插件,并支持开发自定义插件。
案例研究
为了展示 NocoBase 的一些功能,我们将创建一个名为架构门户的案例研究。该门户旨在组织企业应用相关数据,具备以下功能:
- 应用目录。
- 更新提醒,例如版本升级和证书续期。
- API 目录,用于企业系统。
- 数据可视化图表。
开发步骤
数据建模
第一步是映射并定义将在架构门户中包含的字段。以下是一个示例:
1. Application Catalog
Applications:
id: Unique identifier.
name: Application name.
description: Detailed description of the application.
stack: Technologies used.
owner: Responsible person or team.
created_at: Creation date.
last_updated: Last update date.
Reminders (Linked to Applications):
id: Unique identifier.
application_id: Reference to the application.
type: Reminder type (e.g., version update, certificate renewal).
description: Reminder description.
scheduled_date: Scheduled date for the reminder.
status: Status (e.g., Pending, Completed).
2. API Catalog
APIs:
id: Unique identifier.
Application_id: Reference to the corresponding system.
name: API name.
description: Functional description of the API.
documentation_url: Link to the official documentation.
last_updated: Last update date.
version: Current version.
安装 NocoBase
对于安装和配置,我选择了使用 Docker 的本地版本。其他安装选项包括 npm 或 Git 源码。
以下是 Docker Compose 的 YAML 配置代码。安装 Docker 后,导航到 YAML 文件所在目录并运行以下命令:
docker compose up -d
这将在你的机器上启动 NocoBase,默认端口为 13000
。在浏览器中打开 http://localhost:13000
。默认登录凭据为admin@nocobase.com
和 admin123
。
version: '3'
networks:
nocobase:
driver: bridge
services:
app:
image: nocobase/nocobase:beta
networks:
- nocobase
depends_on:
- postgres
environment:
# The application's secret key, used to generate user tokens, etc.
# If APP_KEY is changed, old tokens will also become invalid.
# It can be any random string, and make sure it is not exposed.
- APP_KEY=your-secret-key
# Database type, supports postgres, mysql, mariadb
- DB_DIALECT=postgres
# Database host, can be replaced with the IP of an existing database server
- DB_HOST=postgres
# Database name
- DB_DATABASE=nocobase
# Database user
- DB_USER=nocobase
# Database password
- DB_PASSWORD=nocobase
# Timezone
- TZ=Asia/Shanghai
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# If using an existing database server, postgres service can be omitted
postgres:
image: postgres:16
restart: always
command: postgres -c wal_level=logical
environment:
POSTGRES_USER: nocobase
POSTGRES_DB: nocobase
POSTGRES_PASSWORD: nocobase
volumes:
- ./storage/db/postgres:/var/lib/postgresql/data
networks:
- nocobase
创建表格和数据
使用 Data Source Manager 插件,可以创建集合(表格)并定义字段。根据前文模型,可以轻松实现。更多插件参考见此处)。
创建菜单
通过单击屏幕右侧的铅笔图标,可以创建顶部和侧边菜单,如图所示。我们可以按照图中展示的示例进行配置。
创建表单
创建表单(CRUD)也非常简单。NocoBase 使用块组件来创建表格、表单、详情页、列表、图表、卡片等。在选择块类型后,只需选择要链接到该块的集合(表格),链接到集合的组件(块)会自动生成。每个块都有其独立的自定义设置。
创建图表
构建图表同样非常简单。只需添加一个名为“图表”的块,并选择希望用作数据源的集合(表格),如图所示。
选定块后,可以配置图表属性。下图展示了图表的配置选项,用户可以设置指标、分组、过滤器、不同类型的图表以及标题等属性。用户可以探索所有配置选项,灵活调整图表展示效果。
创建计划工作流
NocoBase 允许通过事件创建自动化工作流,以执行多种任务。三种触发器类型包括:集合事件、计划事件和后操作事件。利用这些触发器,可以在系统内创建各种操作,例如发送通知、将数据插入其他表格或向外部 API 发送请求。以下是一个在应用内发送通知的工作流示例。
在我们的案例中,我们将创建一个工作流,在提醒日期当天发送通知。此工作流使用 计划事件,每天在指定时间运行,如下图所示。
除了配置计划时间,还需要设置工作流以查询 提醒 集合,提取当天的提醒,循环遍历每条提醒,并为每条提醒发送通知,如下图所示。整个过程非常简单,只需点击“+”按钮添加这些动作并进行配置即可。
配置完成后,只需点击右上角的“开”按钮激活工作流。要查看执行结果,点击右上角的“…”按钮并选择 执行历史记录,如图所示。
结论
通过上述案例研究,我们展示了 NocoBase 提供的丰富功能。它灵活适配不同规模和需求的应用开发,支持文件管理、国际化、移动端以及主题编辑功能。用户还可以开发自己的插件或购买市场中的商业插件。
推荐阅读: