# NestJS Application Framework **Repository Path**: lumoumou/nestjs-application-framework ## Basic Information - **Project Name**: NestJS Application Framework - **Description**: 基于NestJS + Casbin 的应用开发框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-03 - **Last Updated**: 2025-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NestJS Application Framework 基于NestJS的快速开发框架 选型: - 框架:NestJS,前后端不分离 - 模板引擎:ejs - ORM:typeorm - 鉴权:jwt - 授权:Casbin ## AI提示词: - 使用pnpm 管理和安装依赖 - 需要执行命令行程序时,禁止使用&&连接多条命令 ## TODO ### 一期:基本功能验证 模板引擎(前后端不分离)、ORM 、鉴权、授权(ABAC) - [x] 模板引擎:demo-ejs页 - [x] ORM:在demo-ejs页中读取数据库article数据并输出 - [x] 鉴权:创建一个新的页面demo-jwt,该页有权限才能访问,基于jwt鉴权,没权限就跳转到登录页 - [x] 授权:在 NestJS 项目中引入casbin,使用 ABAC 模型 - [x] 实现Casbin基于数据库的ABAC权限策略管理 - [x] 菜单管理:简单验证菜单管理 - [x] 角色管理:实现角色管理页面 - [x] 支持对角色设置文章分类的投稿权限 - [x] 角色权限管理: - [x] 角色权限管理页面 - [x] 角色菜单授权 - [x] 用户管理 - [x] 分类管理:实现分类管理页面,支持多级分类 - [x] 文章管理:实现文章管理页面,支持文章分类、作者、状态、发布时间、内容、图片、文件、链接等 - [x] 通用数据管理:实现通用数据管理页面,通用数据支持字段自定义类型:文本、图片、文件、链接等 - [x] 网站配置管理:实现网站配置管理页面,例如配置标题、Logo、描述、关键词、备案信息等,支持自定义,按键值对获取 ### 二期:面向站群CMS的场景开发 - [ ] 模块化开发,支持卸载战群模块 - [ ] 站点管理:实现站点CRUD,关联站点栏目、内容、通用数据、站点配置管理、前台部分开发 - [ ] 数据权限应用典型案例 - [ ] 对站点的只读、编辑权限,支持继承到站点下的栏目、内容、通用数据、网站配置 - [ ] 对栏目和内容的只读、编辑权限 - [ ] 对通用数据和站点配置的只读、编辑权限 - [ ] 专栏管理 专栏属性配置(样式等配置),前台输出,内容聚合调用 - [ ] 支持内容的主栏目加副栏目配置 - [ ] 支持字段扩展以支持多模型 - [x] 优化文章发布功能: - [x] 支持Ueditor富文本编辑器 - [x] 在选择文章分类时,仅显示该角色有权限的文章分类 ### 三期:面向审批工作流的场景开发 - [ ] 集成工作流组件 - [ ] 面向内容发布的审批工作流 - [ ] 类似OA的工作流配置 ### 架构优化 - [ ] 前端用SPA工程化 - [ ] 后端用redis或类似的方案管理session ### 细节优化 - [x] 后台标签可以在新窗口打开 - [x] 后台标签右键刷新 - [x] 解决jwt token固定时间后过期的问题(之前无论刷新与否,token的过期时间都是固定的,所以需要解决) - [ ] 很多页面的请求还没有统一走http-client中的接口 - [ ] 应该全部改成基于header识别token,现在后端还是cookie ## ABOUT ### Setup 安装pnpm,并配置淘宝源: pnpm config set registry https://mirrors.cloud.tencent.com/npm/ ```bash $ pnpm install ``` ### Dev & Build ```bash # development $ pnpm run start # watch mode $ pnpm run start:dev # production mode $ pnpm run start:prod ``` ### test ```bash # unit tests $ pnpm run test # e2e tests $ pnpm run test:e2e # test coverage $ pnpm run test:cov ``` npm install --save @nestjs/typeorm typeorm mysql2 已经成功运行,现在开始实现一个用户登录页面,采用前后端不分离的方案。