# node-api **Repository Path**: hou_zhan_guo/express-sequelize-api ## Basic Information - **Project Name**: node-api - **Description**: 简介:NodeJs + Vue3 全栈项目 开箱即用的后台项目API,配套前端 Vue后台管理项目。 项目框架 :采用了 Node.js + Express + Mysql + Sequelize ORM 开发。 - **Primary Language**: NodeJS - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 32 - **Forks**: 7 - **Created**: 2024-06-21 - **Last Updated**: 2025-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Node- api #### 简介:开箱即用的后台项目API,配套前端 Vue后台管理项目 #### 后端技术栈:Node.js + Express + Mysql + Sequelize ORM #### 源码:https://gitee.com/hou_zhan_guo/express-sequelize-api #### 前端技术栈:Vue3 + Vue-router + Pinia + Element-plus + Vite #### 源码:https://gitee.com/hou_zhan_guo/node-admin ## 功能实现: - 登录 - token认证 - 用户管理 - 菜单管理 - 部门管理 - 角色管理 - 课程管理 - 章节管理 - 课程视频流 - 点赞评论 - 文章管理 - 一键生成代码 ## 效果图 - 用户管理 ![用户管理](./public/images/user.png) - 菜单管理 ![菜单管理](./public/images/menu.png) - 角色管理 ![角色管理](./public/images/role.png) - 部门管理 ![部门管理](./public/images/dept.png) - 分类管理 ![分类管理](./public/images/fenlei.png) - 课程管理 ![课程管理](./public/images/hecheng.png) - 章节管理 ![章节管理](./public/images/chapter.png) - 视频流播放,点赞,评论 ![章节管理](./public/images/video.png) ## 项目架构 ![projectStructure.png](./public/images/projectStructure.png) ### 项目准备 安装 redis for windows ```test https://github.com/tporadowski/redis/releases ``` [.env](.env) 文件中配置 ```text # token 密钥 TOKEN_SECRET=hello # token 过期时间 TOKEN_EXPIRES=30h # 开发环境:development 生产环境 production NODE_ENV=development # 服务器地址配置 SERVER_REQUEST_ADDRESS=http://localhost:3000 # 静态资源目录 STATIC_DIR=public/ # redis 配置 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD=123456 REDIS_DB=0 ``` [config.json](config%2Fconfig.json)配置数据库 ```text "username": "root", "password": "123456", "database": "express_api", "host": "127.0.0.1", "dialect": "mysql", "timezone": "+08:00", "logQueryParameters": true ``` 下载依赖 ```text npm i ``` 运行迁移,自动生成数据库表 ```text sequelize db:migrate ``` 运行种子文件 [seeders](seeders) 文件夹下的所有文件(里面是初始化数据) ```text sequelize db:seed --seed 20240620085036-article.js sequelize db:seed --seed 20240621030931-category.js sequelize db:seed --seed 2F20240621040247-user.js sequelize db:seed --seed 20240621051058-course.js sequelize db:seed --seed 20240621060608-chapter.js sequelize db:seed --seed 2F20240627014712-menu.js sequelize db:seed --seed 20240628134407-role.js sequelize db:seed --seed 20240706143854-menu-learn.js ``` 启动 ```text npm dev 开发环境 npm start 生产环境 --会生成 log/ 目录保存 errlog 和 所有日志 ``` 访问地址:http://localhost:3000/ ## 项目版本提交规范 ```text # 主要type feat: 增加新功能 fix: 修复bug # 特殊type docs: 只改动了文档相关的内容 style: 不影响代码含义的改动,例如去掉空格、改变缩进、增删分号 build: 构造工具的或者外部依赖的改动,例如webpack,npm refactor: 代码重构时使用 revert: 执行git revert打印的message # 暂不使用type test: 添加测试或者修改现有测试 perf: 提高性能的改动 ci: 与CI(持续集成服务)有关的改动 chore: 不修改src或者test的其余修改,例如构建过程或辅助工具的变动 ``` ## 项目开发顺序 ```text ● 种子填充数据 ● 修改模型(增加验证、增加关联) ● 复制其他路由文件,进行查找替换 ● 修改白名单和搜索 ● app.js 中添加路由 ● Apifox 测试 ``` ### sequelize网址 https://sequelize.org/docs/v7/cli/ ### 运行迁移 ```text sequelize db:migrate ``` ### 创建模型 ```text sequelize model:generate --name 模型名称 --attributes 字段:类型 ``` ### 创建种子文件 ```text sequelize seed:generate --name 文件名称使用模型名称 ``` ### 运行种子文件 ```text sequelize db:seed --seed 种子文件名 ``` ### 另一个迁移 ```text 当发现建错了,可以回滚了,然后重建。除了这种做法,还可以添加另一个迁移,在表中添加、修改、删除字段。 sequelize migration:create --name add-字段-to-模型 ```