NocoBase 教程 - 开源无代码平台

项目概述

NocoBase是一个开源的无代码/低代码平台,专为快速构建业务应用而设计,提供了可视化的应用构建工具,支持数据管理、工作流自动化、权限控制等企业级功能,无需编写代码即可创建复杂的业务系统。

核心概念

  1. 应用:NocoBase中的基本构建单元,包含多个集合和工作流
  2. 集合:数据模型,类似于数据库表,包含多个字段
  3. 字段:数据模型的属性,如文本、数字、日期等
  4. 记录:集合中的数据实例,类似于数据库中的行
  5. 视图:数据的展示方式,如表格、表单、看板等
  6. 工作流:自动化业务流程,包含触发条件和操作
  7. 权限:用户对应用、集合和记录的访问控制
  8. 角色:用户权限的集合,如管理员、编辑、查看者等
  9. 插件:NocoBase的扩展功能,如文件上传、地图、日历等
  10. 主题:应用的视觉样式配置

核心功能

  1. 可视化应用构建:通过拖拽方式快速创建应用
  2. 灵活的数据模型:支持多种字段类型和关系
  3. 丰富的视图类型:表格、表单、看板、日历、图表等
  4. 工作流自动化:支持触发条件和自定义操作
  5. 细粒度权限控制:基于角色的访问控制
  6. 多语言支持:内置国际化功能
  7. 文件管理:支持文件上传和存储
  8. 插件系统:可扩展的插件架构
  9. API接口:自动生成RESTful API
  10. 主题定制:支持自定义主题和品牌

安装与设置

基本安装

# 使用 Docker 部署
docker run -d --name nocobase -p 13000:80 -v ./nocobase-data:/app/data nocobase/nocobase

# 或者使用 Docker Compose
# 创建 docker-compose.yml 文件
version: '3'
services:
  nocobase:
    image: nocobase/nocobase
    container_name: nocobase
    ports:
      - "13000:80"
    volumes:
      - ./nocobase-data:/app/data
    environment:
      - NODE_ENV=production
      - DB_DIALECT=sqlite
      - DB_STORAGE=/app/data/nocobase.db
    restart: unless-stopped

# 启动服务
docker-compose up -d

基本设置

  1. 访问应用:打开浏览器,访问 http://localhost:13000
  2. 创建管理员账号:按照提示创建管理员账号
  3. 创建应用:点击 "Create App" 按钮创建新应用
  4. 配置应用:设置应用名称、描述和图标
  5. 邀请团队成员:在设置中邀请团队成员协作

基本使用

创建集合

  1. 进入应用:登录NocoBase,进入创建的应用

  2. 创建集合

    • 点击左侧导航栏的 "Collections" 按钮
    • 点击 "Create Collection" 按钮
    • 输入集合名称和描述
    • 点击 "Save" 按钮
  3. 添加字段

    • 进入集合编辑页面
    • 点击 "Add Field" 按钮
    • 选择字段类型(如文本、数字、日期等)
    • 配置字段属性
    • 点击 "Save" 按钮
  4. 设置字段关系

    • 点击 "Add Field" 按钮
    • 选择 "Relationship" 字段类型
    • 选择关联的集合
    • 配置关系类型(如一对一、一对多、多对多)
    • 点击 "Save" 按钮

创建视图

  1. 进入集合:点击左侧导航栏的集合名称

  2. 创建视图

    • 点击 "Add View" 按钮
    • 选择视图类型(如表格、表单、看板等)
    • 输入视图名称
    • 配置视图属性
    • 点击 "Save" 按钮
  3. 配置表格视图

    • 进入表格视图编辑页面
    • 选择要显示的字段
    • 配置字段顺序和宽度
    • 设置排序和筛选条件
    • 点击 "Save" 按钮
  4. 配置表单视图

    • 进入表单视图编辑页面
    • 选择要显示的字段
    • 配置字段布局和验证规则
    • 设置默认值
    • 点击 "Save" 按钮

创建记录

  1. 进入集合:点击左侧导航栏的集合名称

  2. 添加记录

    • 点击 "Add Record" 按钮
    • 填写表单字段
    • 点击 "Save" 按钮
  3. 编辑记录

    • 在表格视图中点击记录行
    • 修改字段值
    • 点击 "Save" 按钮
  4. 删除记录

    • 在表格视图中选择记录
    • 点击 "Delete" 按钮
    • 确认删除操作

配置权限

  1. 进入设置:点击左侧导航栏的 "Settings" 按钮

  2. 创建角色

    • 点击 "Roles" 选项
    • 点击 "Create Role" 按钮
    • 输入角色名称和描述
    • 配置角色权限
    • 点击 "Save" 按钮
  3. 分配用户角色

    • 点击 "Users" 选项
    • 选择用户
    • 分配角色
    • 点击 "Save" 按钮
  4. 设置集合权限

    • 进入集合编辑页面
    • 点击 "Permissions" 选项
    • 配置不同角色的权限
    • 点击 "Save" 按钮

使用工作流

  1. 进入工作流:点击左侧导航栏的 "Workflows" 按钮

  2. 创建工作流

    • 点击 "Create Workflow" 按钮
    • 输入工作流名称和描述
    • 选择触发条件(如记录创建、更新、删除)
    • 配置操作(如发送通知、更新记录、调用API等)
    • 点击 "Save" 按钮
  3. 配置工作流触发条件

    • 选择触发类型(如记录事件、定时触发、手动触发)
    • 配置触发条件
    • 点击 "Save" 按钮
  4. 配置工作流操作

    • 点击 "Add Action" 按钮
    • 选择操作类型
    • 配置操作参数
    • 点击 "Save" 按钮

高级特性

插件系统

  1. 安装插件

    • 点击左侧导航栏的 "Plugins" 按钮
    • 浏览可用插件
    • 点击 "Install" 按钮安装插件
    • 按照提示配置插件
  2. 常用插件

    • 文件上传:支持文件上传和管理
    • 地图:支持地理位置字段和地图展示
    • 日历:支持日历视图和事件管理
    • 图表:支持数据可视化图表
    • API:支持自定义API接口
    • 邮件:支持邮件发送和接收
    • SMS:支持短信发送
    • 第三方集成:支持与其他系统集成
  3. 开发自定义插件

    • 克隆NocoBase代码库
    • 创建插件目录结构
    • 编写插件代码
    • 构建和安装插件

自定义主题

  1. 进入主题设置

    • 点击左侧导航栏的 "Settings" 按钮
    • 点击 "Theme" 选项
  2. 配置主题

    • 选择预设主题(如浅色、深色)
    • 自定义主题颜色
    • 配置字体和图标
    • 点击 "Save" 按钮
  3. 创建自定义主题

    • 点击 "Create Theme" 按钮
    • 输入主题名称
    • 配置主题属性
    • 点击 "Save" 按钮

国际化

  1. 进入国际化设置

    • 点击左侧导航栏的 "Settings" 按钮
    • 点击 "i18n" 选项
  2. 添加语言

    • 点击 "Add Language" 按钮
    • 选择语言
    • 点击 "Save" 按钮
  3. 翻译内容

    • 选择语言
    • 输入翻译内容
    • 点击 "Save" 按钮
  4. 切换语言

    • 在应用界面点击语言选择器
    • 选择目标语言

API接口

  1. 进入API设置

    • 点击左侧导航栏的 "Settings" 按钮
    • 点击 "API" 选项
  2. 启用API

    • 切换 "Enable API" 开关
    • 配置API密钥
    • 点击 "Save" 按钮
  3. 使用API

    • 查看API文档
    • 使用API密钥进行认证
    • 调用API接口操作数据
  4. API示例

    // 获取集合数据
    fetch('http://localhost:13000/api/collections/users/records', {
      method: 'GET',
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json',
      },
    })
    .then(response => response.json())
    .then(data => console.log(data));
    
    // 创建记录
    fetch('http://localhost:13000/api/collections/users/records', {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        name: 'John Doe',
        email: 'john@example.com',
      }),
    })
    .then(response => response.json())
    .then(data => console.log(data));

数据导入导出

  1. 导入数据

    • 进入集合页面
    • 点击 "Import" 按钮
    • 选择文件格式(如CSV、Excel)
    • 上传文件
    • 映射字段
    • 点击 "Import" 按钮
  2. 导出数据

    • 进入集合页面
    • 点击 "Export" 按钮
    • 选择导出格式(如CSV、Excel、JSON)
    • 配置导出选项
    • 点击 "Export" 按钮

实用场景

客户关系管理(CRM)

功能需求:创建一个客户关系管理系统,支持客户信息管理、销售机会跟踪和任务分配。

实现步骤

  1. 创建集合

    • Customers:客户信息集合(姓名、邮箱、电话、地址等字段)
    • Opportunities:销售机会集合(客户、金额、阶段、预计关闭日期等字段)
    • Tasks:任务集合(标题、描述、分配给、截止日期、状态等字段)
  2. 设置关系

    • Customers 与 Opportunities:一对多关系
    • Customers 与 Tasks:一对多关系
    • Opportunities 与 Tasks:一对多关系
  3. 创建视图

    • Customers:表格视图、详情视图
    • Opportunities:看板视图(按阶段)、表格视图
    • Tasks:日历视图、表格视图
  4. 配置工作流

    • 客户创建时发送欢迎邮件
    • 销售机会状态变更时通知负责人
    • 任务截止日期前发送提醒
  5. 设置权限

    • 销售团队:可访问和编辑客户、机会和任务
    • 管理层:可查看所有数据和报表
    • 客服团队:只能访问客户信息

项目管理系统

功能需求:创建一个项目管理系统,支持项目规划、任务分配和进度跟踪。

实现步骤

  1. 创建集合

    • Projects:项目集合(名称、描述、开始日期、结束日期、状态等字段)
    • Tasks:任务集合(项目、标题、描述、分配给、截止日期、状态、优先级等字段)
    • Milestones:里程碑集合(项目、名称、日期、描述等字段)
    • Team Members:团队成员集合(姓名、角色、邮箱等字段)
  2. 设置关系

    • Projects 与 Tasks:一对多关系
    • Projects 与 Milestones:一对多关系
    • Projects 与 Team Members:多对多关系
    • Tasks 与 Team Members:多对多关系
  3. 创建视图

    • Projects:表格视图、详情视图
    • Tasks:看板视图(按状态)、甘特图视图
    • Milestones:日历视图、表格视图
  4. 配置工作流

    • 任务分配时通知负责人
    • 任务状态变更时更新项目进度
    • 里程碑完成时发送通知
  5. 设置权限

    • 项目经理:可编辑所有项目和任务
    • 团队成员:只能编辑分配给自己的任务
    • 查看者:只能查看项目和任务信息

库存管理系统

功能需求:创建一个库存管理系统,支持产品管理、库存跟踪和订单处理。

实现步骤

  1. 创建集合

    • Products:产品集合(名称、描述、SKU、价格、库存数量等字段)
    • Suppliers:供应商集合(名称、联系人、邮箱、电话等字段)
    • Orders:订单集合(客户、日期、状态、总金额等字段)
    • Order Items:订单项集合(订单、产品、数量、单价等字段)
    • Inventory Transactions:库存交易集合(产品、类型、数量、日期、备注等字段)
  2. 设置关系

    • Products 与 Suppliers:多对多关系
    • Orders 与 Order Items:一对多关系
    • Products 与 Order Items:一对多关系
    • Products 与 Inventory Transactions:一对多关系
  3. 创建视图

    • Products:表格视图(显示库存状态)、详情视图
    • Orders:表格视图、详情视图
    • Inventory Transactions:表格视图、图表视图
  4. 配置工作流

    • 库存低于阈值时发送提醒
    • 订单创建时更新库存
    • 订单状态变更时通知客户
  5. 设置权限

    • 库存管理员:可编辑产品和库存信息
    • 销售团队:可创建和管理订单
    • 采购团队:可管理供应商和采购订单

最佳实践

  1. 应用设计

    • 合理规划数据模型和关系
    • 使用命名规范,保持一致性
    • 设计清晰的用户界面和导航
  2. 数据管理

    • 定期备份数据
    • 设置数据验证规则,确保数据质量
    • 使用视图和筛选器组织数据
  3. 工作流设计

    • 从简单的工作流开始,逐步复杂
    • 测试工作流的触发条件和操作
    • 监控工作流执行情况
  4. 权限管理

    • 遵循最小权限原则
    • 定期审查和更新权限设置
    • 使用角色管理权限,而非个人权限
  5. 性能优化

    • 合理使用索引
    • 避免创建过多字段和关系
    • 优化视图和查询
  6. 团队协作

    • 明确团队成员的职责和权限
    • 建立应用开发和维护的流程
    • 定期培训团队成员使用NocoBase
  7. 版本管理

    • 定期导出应用配置
    • 记录应用变更历史
    • 测试变更后再部署到生产环境
  8. 安全管理

    • 使用强密码和多因素认证
    • 定期更新NocoBase版本
    • 限制API访问和使用
  9. 集成与扩展

    • 合理使用插件扩展功能
    • 利用API与其他系统集成
    • 考虑未来的扩展性
  10. 用户体验

    • 设计直观的用户界面
    • 提供清晰的导航和指引
    • 收集用户反馈并持续改进

常见问题与解决方案

1. 安装问题

问题:Docker部署失败或应用无法启动

解决方案

  • 检查Docker是否正确安装和运行
  • 验证端口是否被占用
  • 查看Docker日志获取详细错误信息
  • 确保有足够的磁盘空间和内存

2. 数据模型问题

问题:集合关系配置错误或数据关联失败

解决方案

  • 仔细检查关系类型和配置
  • 确保关联的集合和字段存在
  • 验证数据完整性
  • 重新创建关系并测试

3. 工作流问题

问题:工作流不触发或执行失败

解决方案

  • 检查触发条件是否正确
  • 验证操作配置是否完整
  • 查看工作流执行日志
  • 测试工作流的各个步骤

4. 权限问题

问题:用户无法访问或操作数据

解决方案

  • 检查用户角色和权限设置
  • 验证集合和记录级权限
  • 测试不同角色的访问权限
  • 确保权限继承关系正确

5. 性能问题

问题:应用加载缓慢或操作响应延迟

解决方案

  • 优化数据模型和关系
  • 减少视图中的字段数量
  • 合理使用索引
  • 增加服务器资源

6. 插件问题

问题:插件安装失败或功能异常

解决方案

  • 检查插件版本与NocoBase版本兼容性
  • 查看插件安装日志
  • 重新安装插件
  • 联系插件开发者获取支持

7. 国际化问题

问题:翻译不显示或语言切换不工作

解决方案

  • 检查语言包是否正确安装
  • 验证翻译内容是否完整
  • 测试语言切换功能
  • 查看浏览器控制台错误

8. API问题

问题:API调用失败或返回错误

解决方案

  • 检查API密钥是否正确
  • 验证API端点和参数
  • 查看API请求和响应
  • 检查服务器日志

9. 备份与恢复问题

问题:数据备份失败或恢复后数据丢失

解决方案

  • 定期测试备份和恢复流程
  • 确保备份文件完整
  • 验证恢复环境与备份环境兼容
  • 保持备份的安全性

10. 升级问题

问题:NocoBase升级失败或功能异常

解决方案

  • 升级前备份数据和配置
  • 检查升级文档和兼容性说明
  • 测试升级后的功能
  • 如有问题,回滚到之前的版本

与其他无代码平台的比较

NocoBase vs Airtable

  • 开源 vs 闭源:NocoBase是开源的,Airtable是闭源的
  • 部署选项:NocoBase支持本地部署,Airtable是云服务
  • 价格:NocoBase免费使用,Airtable有免费和付费计划
  • 扩展性:NocoBase支持插件扩展,Airtable有API和集成
  • 功能:两者功能相似,但NocoBase更注重企业级功能
  • 社区支持:NocoBase有活跃的开源社区,Airtable有官方支持

NocoBase vs Bubble

  • 目标用户:NocoBase面向业务用户和开发者,Bubble更面向非技术用户
  • 开发方式:NocoBase通过配置和拖拽构建,Bubble通过可视化编程
  • 扩展性:NocoBase通过插件扩展,Bubble通过插件和自定义代码
  • 性能:NocoBase通常性能更好,特别是处理大量数据时
  • 学习曲线:Bubble学习曲线更平缓,NocoBase需要一定的技术理解

NocoBase vs Retool

  • 定位:NocoBase是无代码平台,Retool是低代码平台
  • 开发方式:NocoBase通过配置构建,Retool通过组件和代码
  • 扩展性:两者都支持扩展,但Retool更注重开发者体验
  • 集成:Retool与更多第三方服务集成,NocoBase更注重内部功能
  • 价格:NocoBase免费,Retool有付费计划

参考资源

  1. 官方文档https://docs.nocobase.com/
  2. GitHub 仓库https://github.com/nocobase/nocobase
  3. 官方教程https://docs.nocobase.com/guides
  4. 社区论坛https://community.nocobase.com/
  5. 示例应用https://docs.nocobase.com/examples
  6. API文档https://docs.nocobase.com/api
  7. 插件开发https://docs.nocobase.com/plugins
  8. 部署指南https://docs.nocobase.com/deployment
  9. 视频教程https://www.youtube.com/c/NocoBase
  10. 常见问题https://docs.nocobase.com/faq
« 上一篇 Refine 教程 - React 数据密集型应用框架 下一篇 » ESLint 教程 - JavaScript代码质量工具