# nodeFrontRear **Repository Path**: zzzPython/node-front-rear ## Basic Information - **Project Name**: nodeFrontRear - **Description**: 前后台 node - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-27 - **Last Updated**: 2024-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # nodeFrontRear #### 介绍 项目 使用lerna + pnpm 进行npm项目包管理( 实际单使用 pnpm 也可完成) 基于 node koa搭建后台项目 基于 vue3 ts 搭建前台项目 后台项目使用 sequelize 对接mysql 同时使用redis做数据缓存 前台 项目路由通过接口返回动态生成 #### 软件架构 - 前台技术栈: 使用vue3 + typescript + elementPlus + wujie + vue-router + pinia - 后台技术栈:使用koa + typescript + ajv + ioredis + sequelize + redis + (后期可能增加 websocket 支持 用于消息提示 或者 用户交流) #### 安装教程 - 建议 使用 node版本 16.19.1 > 基础启动 1. pnpm install (无pnpm 则 先执行 npm run install pnpm -g) 2. pnpm run start (全启动 包含wujie子项目) 1. 后台单独启动 [npm | pnpm | yarn] run start:asc-bg 2. 前台主项目单独启动 [npm | pnpm | yarn] run start:main-web > 后台项目启动 1. 修改config配置 文件地址在 packages >> asc-bg >> src >> config >> [Config.ts](packages%2Fasc-bg%2Fsrc%2Fconfig%2FConfig.ts) 2. 执行sql文件 数据库写入 sql文件地址 [asc_project.sql](packages%2Fasc-bg%2Fasc_project.sql) 1. (在项目根目录中 有相关自动生成数据库表操作 但是需自己配置初始用户) 2. [node_back.postman_collection.json](packages%2Fasc-bg%2Fnode_back.postman_collection.json)(为postman文件用于接口调试 只存在部分接口) > 前台启动 1. pnpm install (无pnpm 则 先执行 npm run install pnpm -g) 2. 单独启动 根项目下 执行 [npm | pnpm | yarn] run start:asc-bg ## 目录结构 ```   |-- node-front-rear |-- .gitignore git的忽略配置文件 |-- lerna.json lerna的配置文件 |-- LICENSE |-- package.json 主项目包 package文件 |-- pnpm-workspace.yaml pnpm的workspace文件 |-- README.md |-- removeJs.js 当不小心 ts编译时(js和map文件生成)清除生成的文件 |-- packages |-- asc-bg | |-- .env.development 开发环境 环境变量 | |-- .env.production 生产环境 环境变量 | |-- .gitignore 子包的git 忽略配置文件 | |-- asc_project.sql 数据库存储的sql | |-- node_back.postman_collection.json postman配置文件 | |-- package.json | |-- README.md | |-- tsconfig.json ts配置文件 | |-- bin | | |-- build.js 生产打包时执行的脚本 | | |-- dev.js 开发打包执行的脚本 | | |-- modules | | |-- clearDir.js 清除文件夹操作js | | |-- copyDir.js 复制文件夹操作 js | | |-- countFile.js 计数 | |-- dist 打包后的目录 | | |-- .env.production | | |-- package.json | | |-- public | | | |-- robots.txt | | |-- src | | |-- index.js | | |-- common | | | |-- ajv | | | | |-- ajv.js | | | | |-- ajvConfig.js | | | | |-- index.js | | | |-- apiJsonSchema | | | | |-- index.js | | | | |-- system | | | | |-- auth | | | | | |-- login.js | | | | | |-- register.js | | | | | |-- sendSmsCodeEmail.js | | | | |-- menu | | | | | |-- addMenu.js | | | | |-- role | | | | |-- addRole.js | | | | |-- delete.js | | | | |-- edit.js | | | | |-- editPermission.js | | | |-- enums | | | | |-- index.js | | | |-- lib | | | | |-- permission.js | | | | |-- router.js | | | |-- logs | | | | |-- index.js | | | | |-- logger.js | | | | |-- logsConfig.js | | | |-- utils | | | |-- date.js | | | |-- utls.js | | |-- config | | | |-- Config.js | | | |-- RedisDbName.js | | |-- Controller | | | |-- user2.js | | |-- core | | | |-- HttpException.js | | | |-- init.js | | |-- db | | | |-- index.js | | | |-- config | | | | |-- index.js | | | |-- models | | | | |-- application.js | | | | |-- init-models.js | | | | |-- menu.js | | | | |-- role.js | | | | |-- roleAndMenu.js | | | | |-- user.js | | | | |-- userAndRole.js | | | | |-- userAndRole2.js | | | |-- redis | | | |-- index.js | | | |-- redis.js | | | |-- redisConfig.js | | |-- middlewares | | | |-- catchError.js | | | |-- validator.js | | | |-- verificationCodeValidator.js | | | |-- verifyToken.js | | |-- routes | | | |-- index.js | | | |-- menu.js | | | |-- role.js | | | |-- user.js | | |-- server | | | |-- auth | | | | |-- demo1.js | | | | |-- index.js | | | |-- mailer | | | | |-- index.js | | | | |-- mailerConfing.js | | | | |-- transporter.js | | | |-- role | | | | |-- index.js | | | |-- token | | | | |-- index.js | | | |-- user | | | |-- index.js | | |-- utils | | |-- jwt.js | | |-- koa-decorts.js | | |-- time.js | |-- logs 日志目录 | | |-- date.-2023-04-27-17.log | | |-- date.-2023-04-27-18.log | |-- public | | |-- robots.txt | |-- src | |-- index.ts 项目入口文件 | |-- common | | |-- ajv | | | |-- ajv.ts 生成 Ajv | | | |-- ajvConfig.ts ajv的配置 | | | |-- index.ts ajv校验 跟操作 | | |-- apiJsonSchema 接口入参的规范文件夹 | | | |-- index.ts | | | |-- system | | | |-- application | | | | |-- addApplication.ts | | | | |-- applicationUpdate.ts | | | | |-- searchApplications.ts | | | |-- auth | | | | |-- login.ts | | | | |-- register.ts | | | | |-- sendSmsCodeEmail.ts | | | | |-- user.ts | | | |-- menu | | | | |-- addMenu.ts | | | | |-- menuUpdate.ts | | | | |-- searchMenus.ts | | | |-- role | | | | |-- addRole.ts | | | | |-- createRolesMenus.ts | | | | |-- delete.ts | | | | |-- edit.ts | | | | |-- editPermission.ts | | | | |-- searchRoles.ts | | | | |-- updateRole.ts | | | |-- user | | | | |-- createUserRoles.ts | | | | |-- updateUser.ts | | | | |-- updateUserPwd.ts | | | |-- wuJie | | | |-- addWuJie.ts | | | |-- wuJieSearch.ts | | | |-- wuJieUpdate.ts | | |-- enums | | | |-- index.ts | | | |-- table.ts | | |-- lib | | | |-- permission.ts | | | |-- router.ts | | |-- logs | | | |-- index.ts | | | |-- logger.ts | | | |-- logsConfig.ts | | |-- typings | | | |-- account.d.ts | | | |-- application.d.ts | | | |-- menu.d.ts | | | |-- modle.d.ts | | | |-- redisOwn.d.ts | | | |-- role.d.ts | | | |-- user.d.ts | | | |-- wuJieOwn.d.ts | | |-- utils | | |-- date.ts | | |-- utls.ts | |-- config | | |-- Config.ts | | |-- RedisDbName.ts | |-- core | | |-- HttpException.ts | | |-- init.ts | |-- db | | |-- index.ts | | |-- config | | | |-- index.ts | | |-- models | | | |-- application.ts | | | |-- init-models.ts | | | |-- menu.ts | | | |-- role.ts | | | |-- roleAndMenu.ts | | | |-- user.ts | | | |-- userAndRole.ts | | | |-- wujie.ts | | |-- redis | | |-- index.ts | | |-- redis.ts | | |-- redisConfig.ts | |-- middlewares | | |-- catchError.ts | | |-- validator.ts | | |-- verificationCodeValidator.ts | | |-- verifyToken.ts | |-- routes | | |-- application.ts | | |-- index.ts | | |-- menu.ts | | |-- role.ts | | |-- user.ts | | |-- wuJie.ts | |-- server | | |-- commonForDB.ts | | |-- application | | | |-- index.ts | | |-- auth | | | |-- demo1.ts | | | |-- index.ts | | | |-- token.ts | | |-- mailer | | | |-- index.ts | | | |-- mailerConfing.ts | | | |-- transporter.ts | | |-- menu | | | |-- index.ts | | |-- role | | | |-- index.ts | | |-- roleMenu | | | |-- index.ts | | |-- token | | | |-- index.ts | | |-- user | | | |-- index.ts | | |-- userRole | | | |-- index.ts | | |-- wuJie | | |-- index.ts | |-- utils | |-- parseData.ts | |-- time.ts | |-- validate.ts |-- asc-main-web | |-- .editorconfig | |-- .env.development | |-- .env.production | |-- .env.staging | |-- .eslintignore | |-- .eslintrc.js | |-- .gitignore | |-- .prettierignore | |-- index.html | |-- package.json | |-- prettier.config.js | |-- removeJs.js | |-- tsconfig.json | |-- unocss.config.ts | |-- vite.config.ts | |-- public | | |-- app-loading.css | | |-- favicon.ico | |-- src | | |-- App.vue | | |-- main.ts | | |-- api 接口相关目录 | | | |-- index.ts | | | |-- application | | | | |-- index.ts | | | |-- common 接口相关的定义文件夹 | | | | |-- apiApplication.d.ts | | | | |-- apiMenu.d.ts | | | | |-- apiRole.d.ts | | | | |-- apiWuJie.d.ts | | | | |-- common.d.ts | | | |-- hook-demo | | | | |-- use-fetch-select.ts | | | | |-- use-fullscreen-loading.ts | | | |-- menu menu接口目录 | | | | |-- index.ts | | | |-- role 角色 接口目录 | | | | |-- index.ts | | | |-- table | | | | |-- index.ts | | | | |-- types | | | | |-- table.ts | | | |-- user | | | | |-- index.ts | | | |-- wuJie | | | |-- index.ts | | |-- assets | | | |-- docs | | | | |-- preview1.png | | | | |-- preview2.png | | | | |-- preview3.png | | | | |-- qq.png | | | | |-- wechat.png | | | |-- error-page | | | | |-- 403.svg | | | | |-- 404.svg | | | |-- layout | | | |-- logo-text-1.png | | | |-- logo-text-2.png | | | |-- logo.png | | |-- components 组件目录 | | | |-- CreateOrUpdate 公共简单model组件 | | | | |-- index.vue | | | |-- DfSearch 公共搜索头 | | | | |-- index.vue | | | |-- IconSelector icon选择组件 | | | | |-- index.vue | | | |-- Notify | | | | |-- data.ts | | | | |-- index.vue | | | | |-- NotifyList.vue | | | |-- Pagination 页码组件 (暂未用) | | | | |-- index.vue | | | |-- Screenfull | | | | |-- index.vue | | | |-- StatusColumn | | | | |-- StatusColumnSolts.tsx | | | |-- SvgIcon | | | | |-- index.vue | | | |-- ThemeSwitch | | | |-- index.vue | | |-- config | | | |-- async-route.ts | | | |-- layout.ts | | | |-- white-list.ts | | | |-- wujie.config.ts | | |-- constants 字段常量 字典定义的模块 | | | |-- cacheKey.ts | | | |-- MT_axios.ts | | | |-- MT_DfSearch.ts | | | |-- MT_Modal.ts | | | |-- MT_SimpleModal.ts | | | |-- mutation-types.ts | | |-- directives 自定义指令文件夹 | | | |-- index.ts | | | |-- permission | | | |-- index.ts | | |-- hooks hooks文件夹 | | | |-- useFetchSelect.ts | | | |-- useFormValidate.ts | | | |-- useFullscreenLoading.ts | | | |-- usePagination.ts | | | |-- useSearchResize.ts | | | |-- useTheme.ts | | | |-- useToken.ts | | |-- icons | | | |-- index.ts | | | |-- svg | | | |-- 404.svg | | | |-- bug.svg | | | |-- component.svg | | | |-- dashboard.svg | | | |-- fullscreen-exit.svg | | | |-- fullscreen.svg | | | |-- link.svg | | | |-- lock.svg | | | |-- menu.svg | | | |-- unocss.svg | | |-- layout 全局页面结构 | | | |-- BlankLayout.vue | | | |-- index.ts | | | |-- index.vue | | | |-- components | | | | |-- AppMain.vue | | | | |-- index.ts | | | | |-- ApplicationSelect | | | | | |-- index.vue | | | | |-- Breadcrumb | | | | | |-- index.vue | | | | |-- Hamburger | | | | | |-- index.vue | | | | |-- NavigationBar | | | | | |-- index.vue | | | | |-- RightPanel | | | | | |-- index.vue | | | | |-- Settings | | | | | |-- index.vue | | | | |-- Sidebar | | | | | |-- index.vue | | | | | |-- SidebarItem.vue | | | | | |-- SidebarItemLink.vue | | | | | |-- SidebarLogo.vue | | | | |-- TagsView | | | | |-- index.vue | | | | |-- ScrollPane.vue | | | |-- hooks | | | |-- useResize.ts | | |-- plugins | | | |-- customComponent.ts | | | |-- index.ts | | | |-- element-plus | | | | |-- index.ts | | | |-- element-plus-icon | | | | |-- index.ts | | | |-- vxe-table | | | |-- index.ts | | |-- router | | | |-- generator-routers.ts 生成路由相关方法 | | | |-- index.ts | | | |-- permission.ts | | |-- store pinia存储相关目录 | | | |-- index.ts | | | |-- modules pinia 模块文件夹 | | | |-- app.ts | | | |-- permission.ts | | | |-- settings.ts | | | |-- tags-view.ts | | | |-- user.ts | | |-- styles | | | |-- custom.scss | | | |-- element-plus.scss | | | |-- index.scss | | | |-- mixins.scss | | | |-- transition.scss | | | |-- variables.css | | | |-- vxe-table.scss | | | |-- theme | | | |-- register.scss | | | |-- core | | | | |-- element-plus.scss | | | | |-- error-page.scss | | | | |-- index.scss | | | | |-- layout.scss | | | | |-- login.scss | | | | |-- other.scss | | | | |-- vxe-table.scss | | | |-- dark | | | | |-- index.scss | | | | |-- variables.scss | | | |-- dark-blue | | | |-- element-plus.css | | | |-- index.scss | | | |-- variables.scss | | |-- utils | | | |-- index.ts | | | |-- parseData.ts | | | |-- permission.ts 单独鉴权操作文件(无用) | | | |-- regex.ts 正则文件 | | | |-- request.ts 主请求方法封装文件 | | | |-- scroll-to.ts | | | |-- service.ts | | | |-- Storage.ts | | | |-- utils.ts | | | |-- validate.ts 数据类型鉴定方法 | | | |-- cache | | | |-- cookies.ts cookies相关操作 | | | |-- localStorage.ts localstorage相关操作 | | |-- views 页面 目录 | | | |-- application | | | | |-- createOrUpdate.vue | | | | |-- index.vue | | | |-- dashboard | | | | |-- index.vue | | | | |-- admin | | | | | |-- index.vue | | | | |-- editor | | | | |-- index.vue | | | |-- error-page | | | | |-- 403.vue | | | | |-- 404.vue | | | | |-- components | | | | |-- ErrorPageLayout.vue | | | |-- hook-demo | | | | |-- use-fetch-select.vue | | | | |-- use-fullscreen-loading.vue | | | |-- login | | | | |-- index.vue | | | |-- menu | | | | |-- index.vue | | | |-- menuOld | | | | |-- menu1 | | | | | |-- index.vue | | | | | |-- menu1-1 | | | | | | |-- index.vue | | | | | |-- menu1-2 | | | | | | |-- index.vue | | | | | | |-- menu1-2-1 | | | | | | | |-- index.vue | | | | | | |-- menu1-2-2 | | | | | | |-- index.vue | | | | | |-- menu1-3 | | | | | |-- index.vue | | | | |-- menu2 | | | | |-- index.vue | | | |-- permission | | | | |-- directive.vue | | | | |-- page.vue | | | | |-- components | | | | |-- SwitchRoles.vue | | | |-- redirect | | | | |-- index.vue | | | |-- role | | | | |-- authorizationMenu.vue | | | | |-- createOrUpdate.vue | | | | |-- index.vue | | | |-- table | | | | |-- element-plus | | | | | |-- index.vue | | | | |-- vxe-table | | | | |-- index.vue | | | | |-- tsx | | | | |-- RoleColumnSolts.tsx | | | | |-- StatusColumnSolts.tsx | | | |-- unocss | | | | |-- index.vue | | | |-- user | | | | |-- addUser.vue | | | | |-- authorizationRole.vue | | | | |-- index.vue | | | | |-- updatePwd.vue | | | |-- wuJie wujie载体文件夹 | | | | |-- item.vue | | | | |-- vue3.vue | | | | |-- QueryFrontend | | | | | |-- index.vue | | | | |-- ReportFrontend | | | | |-- index.vue | | | |-- wujieMenu | | | |-- index.vue wujie菜单(用于控制wujie配置入库) | | |-- wujie | | |-- fetch.ts wujie的请求封装 | | |-- index.ts wujie主操作文件 | | |-- lifecycle.ts wujia公共生命周期 | | |-- loading.ts wujie loading文件 | | |-- plugin.ts 无界 插件文件(可自己编写) | |-- tests | | |-- demo.test.ts | | |-- components | | | |-- Notify.test.ts | | |-- utils | | |-- validate.test.ts | |-- types | |-- api.d.ts | |-- env.d.ts | |-- modal.d.ts | |-- ownAxios.d.ts | |-- ownRouter.d.ts | |-- shims-vue.d.ts | |-- vue-router.d.ts |-- react17 子项目 | |-- .env | |-- .gitignore | |-- CHANGELOG.md | |-- package.json | |-- README.md | |-- config | | |-- env.js | | |-- getHttpsConfig.js | | |-- modules.js | | |-- paths.js | | |-- pnpTs.js | | |-- webpack.config.js | | |-- webpackDevServer.config.js | | |-- jest | | |-- babelTransform.js | | |-- cssTransform.js | | |-- fileTransform.js | |-- public | | |-- favicon.ico | | |-- index.html | | |-- logo192.png | | |-- logo512.png | | |-- manifest.json | | |-- robots.txt | |-- scripts | | |-- build.js | | |-- start.js | | |-- test.js | |-- src | |-- App.js | |-- App.test.js | |-- Communication.js | |-- Dialog.js | |-- index.css | |-- index.js | |-- Location.js | |-- logo.svg | |-- reportWebVitals.js | |-- setupTests.js | |-- State.js |-- vue3 子项目 |-- .browserslistrc |-- .eslintrc.js |-- .gitignore |-- babel.config.js |-- CHANGELOG.md |-- package.json |-- README.md |-- vue.config.js |-- public | |-- favicon.ico | |-- index.html |-- src |-- App.vue |-- index.css |-- main.js |-- assets | |-- logo.png |-- components | |-- AppendBody.vue | |-- HelloWorld.vue |-- router | |-- index.js |-- utils | |-- common.js |-- views |-- Communication.vue |-- Dialog.vue |-- History.vue |-- Home.vue |-- Location.vue |-- State.vue ```