JianghuJS-多应用开发

12002

1、概念

  • 多应用开发的需求背景

    多应用开发的需求背景主要源自业务多样性、用户差异、平台多样性以及团队协作的需求。采用多应用开发策略有助于更好地满足这些多元化的要求。从开发的角度看,多应用开发的需求背景主要包括以下方面:

    1. 技术栈适应性:
      不同的应用可能需要采用不同的技术栈和开发框架,以满足特定需求和业务场景。

    2. 模块化和组件化开发:
      采用多应用开发模式可以鼓励模块化和组件化的开发方式,使得代码更容易维护、扩展和重用。

    3. 团队分工:
      多应用开发有助于团队之间的分工,每个团队可以专注于不同应用的开发,提高开发效率。

    4. 快速迭代:
      各个应用独立开发和部署,有助于快速迭代和发布更新,而不影响其他应用的正常运行。

    5. 平行开发:
      不同团队或开发者可以在不同应用上进行平行开发,提高整个开发流程的并行度。

    6. 定制化用户体验:
      针对不同用户群体或业务场景,可以定制化开发不同应用,以提供更优化和个性化的用户体验。

    7. 技术选型自由度:
      不同应用可以选择适合自身需求的技术栈,提供更大的技术选型自由度。

JianghuJS 中级 enterprise 模板项目是一个有价值的学习资源,特别适用于学习多应用项目的开发和管理。

2、初始化 enterprise

  • enterprise 结构介绍

    enterprise的主要结构,有数据仓库,用户管理和应用程序管理。在这个结构中,企业是顶层实体,下面是数据仓库、用户管理和应用程序管理。这三个组成部分共同构成了企业的信息管理和技术支持体系。企业通过数据仓库获得数据洞察,用户管理确保数据的安全访问,应用程序管理则负责有效地开发和维护业务应用。

    • data_repository:
      数据仓库应用,同步/采集其它库的表,用于数据的同步和共享

    • user_app_management:
      用户APP管理应用权限

    • directory:
      APP目录应用

  • jianghu-init enterprise 的流程

  • 执行jianghu-init:
    my-jh-project-multi 为您的项目名,可自定义

    1. jianghu-init project --type=enterprise `my-jh-project-multi`
  • 填写项目信息:
    下面信息如果有默认信息,可直接回车使用默认值

    1. ? project name: `${您的项目名称}`
    2. ? project description: `${您的项目描述}`
    3. ? project author: `${您的项目作者}`
    4. ? prefix of database: `${您想要初始化的数据库库名}`
    5. ? cookie security keys: `${您项目的cookie key}`
    6. ? 数据库IP: `${您项目的cookie key}`
    7. ? 数据库端口: `${您项目的cookie key}`
    8. ? 数据库账号: `${您项目的cookie key}`
    9. ? 数据库密码: `${您项目的cookie key}`
  • 等待初始化完成

  1. 目录切换 data_repository
  2. - [mysql importer] 68.45% Completed
  3. - [mysql importer] 100% Completed
  4. 初始化`数据库基本表和数据`完成
  5. 目录切换 user_app_management
  6. - [mysql importer] 68.45% Completed
  7. - [mysql importer] 100% Completed
  8. 初始化`数据库基本表和数据`完成
  9. 目录切换 directory
  10. - [mysql importer] 68.45% Completed
  11. - [mysql importer] 100% Completed
  12. 初始化`数据库基本表和数据`完成
  13. usage:
  14. - cd /xxx/my-jh-project-multi
  15. - ls
  16. - cd your_app
  17. - npm install
  18. - npm start / npm run dev
  19. jianghu init project is success

出现 jianghu init project is success后,您的项目就初始化好啦~

3、安装依赖

  • 多应用的包安装

输入命令,完成安装:

  1. $ cd my-jh-project-multi
  2. $ npm --prefix=data_repository install
  3. $ npm --prefix=user_app_management install
  4. $ npm --prefix=directory install

4、启动项目

  • 多应用的启动

  • 进入enterprise项目目录:

  1. $ cd my-jh-project-multi
  • 启动data_repository:
  1. $ npm --prefix=data_repository run dev

浏览器打开访问http://127.0.0.1:7005, 用户名admin 密码123456

  • 启动user_app_management:
  1. $ npm --prefix=user_app_management run dev

浏览器打开访问http://127.0.0.1:7006, 用户名admin 密码123456

  • 启动directory:
  1. $ npm --prefix=directory run dev

浏览器打开访问http://127.0.0.1:7007, 用户名admin 密码123456

5、功能介绍

  • data_repository(数据仓库)

data_repository(数据存储库)通常是指一个集中存储、管理和组织数据的地方,可以是一个数据库系统或数据仓库。在 Enterprise 中,data_repository 的功能包括:

  1. 新增同步配置:

    • 点击新增同步
    • 选择需要同步到data_repository的数据库
    • 选择需要同步的数据表
    • 选择需要同步的时间间隔

WechatIMG86.png

  1. 编辑同步配置:

    • 点击每一行的修改按钮
    • 选择需要同步到data_repository的数据库
    • 选择需要同步的数据表
    • 选择需要同步的时间间隔

WechatIMG87.png

  1. 手动同步
    • 点击全部-手动同步按钮,即可触发批量同步
    • 点击每一行同步按钮,即可单个同步

WechatIMG88.png

  1. 自动同步
  • 默认禁用

WechatIMG85.png

  • 启用
    修改data_repository/config/config.local.js
  1. dataSyncStatus: '启用' // 是否启用同步,启用/禁用
  • 查看同步日志
    查看数据表同步是否成功,及失败原因

WechatIMG89.png

  • user_app_management(用户APP权限管理)
  1. 新增用户
  • 用于给多应用项目添加统一的用户:

    • 进入用户管理页面
    • 点击新增

WechatIMG91.png

  1. 用户APP管理
  • 给多给用户添加APP权限:

    • 进入用户管理页面
    • 点击APP管理
    • 点击分配新APP

WechatIMG93.png
WechatIMG94.png

  1. 用户操作

    • 进入用户管理页面
    • 点击操作

WechatIMG96.png

  1. 新增APP

    • 用于给多应用项目添加APP:

    • 进入APP管理页面

    • 点击新增

WechatIMG92.png

  1. APP用户管理

    • 给多给APP分配用户:

    • 进入APP管理页面

    • 点击用户管理

    • 点击分配新用户

WechatIMG98.png
WechatIMG95.png

  1. APP操作

    • 进入APP管理页面
    • 点击操作

WechatIMG97.png

  • directory(目录管理)
  1. 快捷进入
  • 提供应用的快捷入口:

    • 进入目录页面
    • 点击快捷方式即可

WechatIMG99.png

  • 新建应用
  1. 创建项目
  • 进入多应用项目目录:
    1. $ cd my-jh-project-multi
  1. 初始化应用
  1. $ jianghu-init project --type=1table-crud-enterprise new-1table-crud
  2. 目录切换 new-1table-crud
  3. [mysql importer] 94.45% Completed
  4. [mysql importer] 100% Completed
  5. 初始化`数据库基本表和数据`完成
  6. usage:
  7. - cd /xxx/my-jh-project-mutil/new-1table-crud
  8. - npm install
  9. - npm start / npm run dev
  10. jianghu init project is success
  1. 添加APP登录权限

默认没有用户可以登录新创建的应用,需要在用户管理中心配置登录权限

  1. 登录用户管理项目
  • 登录用户管理项目:
  1. 浏览器打开访问http://127.0.0.1:7006, 用户名admin 密码123456

点击登录

WechatIMG100.png

  1. 添加APP
  • 进入APP管理页面
  • 点击添加APP,输入APP信息
    • 应用ID:在${app_path}/config/config.default.js中的appId获取
    • 应用名:app名字
    • 应用类型:使用"internal"
  • 点击保存
  • 进入APP管理页面
  • 点击用户管理
  • 点击分配新用户
  • 选择需要授权的用户
  • 点击保存选中即可
  1. 启动项目
  • 进入项目目录:
  1. $ cd my-jh-project-multi/new-1table-crud
  • 安装项目依赖:
  1. $ npm install
  • 启动项目:

    1. $ npm run dev
  • 登录:

浏览器打开访问http://127.0.0.1:7008
使用已授权的用户登录即可~