Skip to content
On this page

开发指南

1.环境要求

在开始开发之前,请确保开发环境满足以下要求:

  • Node.js >= 16
  • pnpm >= 7.9.5

2.command

安装依赖

shell
pnpm install

初始化项目

进行开发之前,需要先了解一下本地环境不是一个纯前端的项目,会有一些简单的curd,需要执行shell预先创建一个sqlite的本地数据库文件和上传文件的文件夹

shell
pnpm run init

build ckeditor

shell
pnpm run build:ckeditor5

运行项目

shell
pnpm run dev

运行server项目

shell
pnpm run dev:server

构建项目

shell
pnpm run build

3.URL

Brower

URL说明Back-end
/formEditorerFormEditor组件
/formEditorConfigerFormConfig组件
/formEditor/object/objList表单列表新建、删除、修改
/formEditor/object/objEdit/:objid编辑表单进入编辑器对表单进行字段编辑
/formEditor/object/:objid/actionList记录表单下录入的数据新建、删除、修改
/formEditor/object/:objid/actionEdit/:actionid?录入表单数据

Server

URL说明Method
/Everright-api/lowCode/obj获取全部表单GET
/Everright-api/lowCode/obj创建表单POST
/Everright-api/lowCode/obj/:objid获取表单GET
/Everright-api/lowCode/obj/:objid修改表单PUT
/Everright-api/lowCode/obj/:objid删除表单DELETE
/Everright-api/lowCode/obj/:objid/action获取表单下录入的全部数据POST
/Everright-api/lowCode/obj/:objid/create创建数据POST
/Everright-api/lowCode/obj/:objid/:id获取录入数据GET
/Everright-api/lowCode/obj/:objid/:id修改录入数据PUT
/Everright-api/lowCode/obj/:objid/:id删除录入数据DELETE
/Everright-api/lowCode/uploads上传文件POST

4.Database

TIP

如有对数据库不太熟悉又需要了解这块的逻辑建议稍微掌握一些express和有关数据库的知识。

依赖sqlite数据库,ORM库使用better-sqlite3

TIP

Windows环境需要自行安装sqlite

Mac自带sqlite

为什么会在开发环境搭建一个具有数据库的功能呢?为了方便开发,编辑器生成数据之后需要在预览器预览进行功能检查,往往需要copy一份json然后给到预览器,如果发现不对,需要再次重复这个事情,然而这是一个极其繁琐的事情,因此也就有了一个数据库来做这个事情,提升开发效率,无需关注这些琐碎的事情。在多数情况下不需要修改后端代码就可以正常运行!!!

Table

一共有三张表进行支持这个服务,分别是object、object_table、field(目前没有应用)

建表语句

shell
CREATE TABLE object (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name TEXT NOT NULL,
  content TEXT,
  create_timestamp DEFAULT (unixepoch('now')),
  update_timestamp DEFAULT (unixepoch('now'))
)`

CREATE TABLE object_table (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  obj_id TEXT NOT NULL,
  content TEXT,
  create_timestamp DEFAULT (unixepoch('now')),
  update_timestamp DEFAULT (unixepoch('now'))
)

CREATE TABLE field (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  obj_id TEXT NOT NULL,
  content TEXT,
  create_timestamp DEFAULT (unixepoch('now')),
  update_timestamp DEFAULT (unixepoch('now'))
)

1.object表

创建的表单会存入在这张表

字段说明
id自增id,对应objid
name表单名称
content表单数据,编辑器生成的json存入此处
create_timestamp创建时间
update_timestamp修改时间

2.object_table表

表单记录的数据会存入这张表

字段说明
id自增id
obj_id表单objid
content记录的数据
create_timestamp创建时间
update_timestamp修改时间

3.field表

所有字段都会存入这张表,但是目前没有使用到,最初开发的时候结合Everright-filter开发过一个列表的组件,大致的功能有字段在列表的排序以及展示哪些字段,都是基于这张表的数据进行开发,在后期的迭代中这个自定义列表的功能被放弃了,但是这个表依旧被保留了下来。

字段说明
id自增id
obj_id表单objid
content表单字段
create_timestamp创建时间
update_timestamp修改时间

TIP

🎉如果这个项目对你有帮助或启发,可以的话欢迎给一个star⭐️.