# node-koa2 **Repository Path**: wudandong/node-koa2 ## Basic Information - **Project Name**: node-koa2 - **Description**: node语言的基础后台功能框架,包含功能:自动读取API、全局捕获错误、Sequelize 连接 Mysql 数据库、必填参数校验、密码加密、根据用户权限判断是否可访问API、生成JWT token令牌并验证 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-03-10 - **Last Updated**: 2024-04-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Node + Koa 基础后台框架 - 包含功能:自动读取API、全局捕获错误、Sequelize 连接 Mysql 数据库、必填参数校验、密码加密、根据用户权限判断是否可访问API、生成JWT token令牌并验证 #### 自动读取API 路径:/core/init Initmanager.initLoadRouter() #### 全局捕获错误 路径:/middle/catch catchError() 错误码定义: /core/error #### Sequelize 配置文件:config.js 路径: /core/db #### 必填参数校验 路径:/core/my-validator 使用方法:传入 ctx 和 必传参数名+传参方式组成的二维数组,例如:[['id', 'params'], ['uname.firstName', 'body'], ['type', 'query'], ['token', 'header']] #### 密码加密 加密方式:使用 bcryptjs 完成加盐hash运算 路径:/app/modules/user User.init.password #### 生成JWT token令牌并验证 第三方包: jsonwebtoken 路径:/core/unit getToken() let token = jwt.sign({ uid, type }, key, { expiresIn }) 验证的方法: /middle/auth m() jwt.verify(token, key) #### 根据用户权限判断是否可访问API 路径:/middle/auth m(type) type表示api需要的权限,用数字表示,数字越大,等级越高 使用示例: router.get('/list',m(3), async ctx => {})