# wos-server **Repository Path**: dushu/wos-server ## Basic Information - **Project Name**: wos-server - **Description**: 基于node的管理系统,配合wos-view, 实现前后端分离的管理系统。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2024-01-05 - **Last Updated**: 2024-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 开发日志 - 基本测试完成,待完善的功能包括 - apifox 最后修订 - 预计一周内基础功能开发完成 - 2024.1.8 灰度上线系统设置, 待完善各种验证。 - 2024.1.6 第一版采用typescript,缺点在开发过程编译速度较慢,影响开发效率,相应速度也不很理想。阻碍了异步非阻塞模型的感人状态。果断放弃。 # 介绍 wos-server 是基于node的管理系统,配合wos-view,实现前后端分离的后台管理系统。 数据库mysql,redis是一个可选的功能。开发想法能省则省 ![登陆页面](/files/upload/info-1.jpg) ## 安装 ### 服务端安装 ```shell npm install npm run dev //开发模式 npm start //生产模式 ``` ### 前端安装 ```shell cd ./www npm install npm run dev //开发模式 npm run build //生成前端代码 ``` 导入 ./sql/wos.sql 配置文件 ./config.js 路由目录 ./src/list/*.json 不支持子目录,自动加载所有json文件 ## [前端开发Readme点击跳转](./www/README.md) ## API接口调试 使用了apifox,可在线调试API接口。[点击apifox本地测试环境](https://apifox.com/help/app/web/browser-extension) >共享地址:https://apifox.com/apidoc/shared-7cc19d65-87ed-4462-8be3-31df6665f259 可导入的apifox.json文件在 ./sql/wos-server.apifox.json ## 前端 wos-view 前端使用vite构建,使用了element-plus-ui组件库,typescript。 ![相关页面](/files/upload/info-2.jpg) ## 后端 wos-server 后端使用koa2构建,mysql,redis<可选>。 ## 数据库 ## 文件结构 - files - upload 上传的文件位置 - www 前端build后上传的静态资源位置 - sql 数据库文件 - src 开发目录 - controller 控制器目录 <所有RESTful业务模块> - modules 模块目录 <存储公用模块,用于数据交互> - global 所有node全局环境方法封装 - query 封装了mysql数据链接池 - redis 封装了redis数据链接池 - routers 路由目录 - list 所有路由列表 - guard.js 路由前置守卫,用于判断token是否存在,过期等 - index.js 路由入口 - static 静态资源文件 - utils - getUserIp 获取用户真实IP - makeSql 数据库查询封装 - parseQueryParams 解析url参数,返回对象 - response KOA2所有返回数据格式 - stringFormat 封装了一些文字的通用方法 - timestramp 封装了时间戳的通用方法,建议全局不要自己写时间戳,统一调用 - app.js 入口文件 - www 前端代码 - config.js 配置文件 ## 数据库 - sys_dept 部门表 - sys_dict_data 字典数据表 - sys_dict_type 字典类型表 - sys_log_system 系统日志表 - sys_menu 菜单权限表 - sys_post 岗位表 - sys_role 角色表 - sys_user 系统用户表 ## 路由守卫 > 详见./src/guard.js # 帮助 ## 路由 >所有路由以json形式保存在 ./src/routers/list 不支持子目录的形式 ```json { "routers": [ { "name": "路由名称", "path": "/访问地址", //自动加前缀,请不要加前缀,如果不需要前缀在config中prefixString设置为空 "method": "get", //方法 "handler": "../controller/common/version.js" //对应执行文件 } ] } ``` ## 数据库查询封装 > 详见 ./utils/makeSql.js - 支持遍历查询结果 - 支持分页查询 - 支持排序 - 支持模糊查询 - 支持多字段多条件查询 - 支持多字段多条件模糊查询 - 支持多字段多条件排序 - 支持多字段多条件分页 - 支持多字段多条件排序分页 ## 更新锁定 > 表中有version字段,使用了触发器的机制,不能直接修改version字段,会自动更新version字段 ```sql DELIMITER // CREATE TRIGGER wos_version BEFORE UPDATE ON 表名 FOR EACH ROW BEGIN SET NEW.version = UNIX_TIMESTAMP(); END; // DELIMITER ; ```