1.0.14 • Published 7 years ago

saas-plat-server v1.0.14

Weekly downloads
3
License
GPL-3.0
Repository
github
Last release
7 years ago

saas-plat-server

概述

为saas-plat.com平台提供应用服务器,提供基于Restful Api、CQRS、sequelize的ORM、Workflow和定时服务的运行环境。

安装

  npm install saas-plat-server

仅仅saas-plat-server是没有意义,你还需要安装业务模块

  npm install saas-plat-erp-base saas-plat-retail_pos saas-plat-stock_control saas-plat-purchase_sale

需要在项目跟目录创建一个tenant.json配置服务器信息

{
  "modules": "saas-plat-*",  // glob 或 ['xxx','xxx2']
  "eventdb": {
    "username": "root",
    "password": "123456",
    "database": "testserver1_events",
    "host": "localhost",
    "dialect": "mysql"
  },
  "querydb": {
    "username": "root",
    "password": "123456",
    "database": "testserver1_querys",
    "host": "localhost",
    "dialect": "mysql"
  }
}

开发

按业务单元开发,每个单元划分成一个模块,一个模块包含如下项目结构:

  • saas-plat-erp-base-department
    • src // es6
      • controller
      • logic
      • service
      • model
      • domain
      • migration
      • command
      • event
      • workflow
      • task
    • app // es5
    • package.json

saas-plat-server是前后端分离的模式,server只能提供api接口, 如果需要高体验的前端,参见https://github.com/saas-plat/saas-plat-native

可以安装saas-plat-cli工具构建项目

  npm i -g saas-plat-cli

  saasplat module mymodule1
  cd mymodule1

更多API参见API文档

CQRS DDD

业务模块采用DDD领域驱动设计方式开发

相关文件夹

  - domain    // 领域对象或服务,主要实现业务逻辑代码
  - command   // 命令Handler,调用领域对象或服务执行逻辑
  - event     // 事件Handler,在发生了某个业务事件后处理保存成供查询的一维表数据、系统集成等其他逻辑
  - model     // 查询对象,简单的一维表,直接提供查询数据
  - migration // 业务迁移逻辑

eventhandler注意事项: 回溯业务事件时有可能不需要执行某些代码,例如发送短信通知,
这是可以使用 saasplat.resourcing 状态判断是否是回溯模式

业务迁移

业务迁移适用于调整业务逻辑或者错误产生的数据错误

ORM

查询对象采用ORM方式操作

相关文件夹

  - model

数据迁移

数据迁移并不需要编写创建表脚本或升级脚本,也不需要写错误数据修改脚本, 系统会计算相关模块,采用重塑业务事件方式,重建所有相关数据

定时任务

周期性执行一个command或者定时执行一个command

saasplat.task.add(taskname, module, cron/date, command, data, ...);

定时任务一般在evenghandler中调用,直接调用基类函数

export default class extends saasplat.eventhandler {
  async xxxCreated({
    this.addTask(taskname, cron/date, command, data, ...);
  })
}

cron 执行周期任务

cron格式

*    *    *    *    *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └───── month (1 - 12)
│    │    │    └────────── day of month (1 - 31)
│    │    └─────────────── hour (0 - 23)
│    └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, OPTIONAL)

date 定时任务

new Date(2012, 11, 21, 5, 30, 0)

工作流

Restful Api

Socket.io

配置

路由

运行

  npm start

授权

saas-plat-server和saas-plat-cli工具遵循GPL许可

部分由saas-plat.com开发者开发的业务模块可能采用非商业授权许可

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago