一、关于重复造轮子解释下
在npmjs上搜索关于koa路由装饰器的已经有那么几个包了,但是我从几个包中发现作者的思维仅仅限制于前端开发的思想,项目分层不明确,我们开发kow-web项目可以根据java-web中项目分层的思想来写项目,项目结构清晰明了,本人封装这个包也是参考了java-web开发过程中把项目分为四层架构。
1、controllers:路由的控制
2、servers:常用于一些业务逻辑的判断
3、dao:操作数据库的
4、models:关于建表的数据模型
二、关于koa2-router-decors包的使用步骤
1、构建一个项目,并创建分层目录
2、安装
npm install koa2-router-decors // or yarn add koa2-router-decors
3、在中间件中使用我们安装的包
import { resolve } from 'path'; import Route from 'koa2-router-decors'; // 可以写到config中统一配置 const API_VERSION = '/api/v1'; /** * @Description: 反转路径的方法 * @param {String} * @return: */ const dir = path => resolve(__dirname, path); /** * @Description: 路由中间件读取controllers中的装饰器配置 * @param {type} * @return: */ export default (app) => { // 这个地方是要读取的文件夹目录 const apiPath = dir('../controllers/*'); // 实例化类并调用方法 const route = new Route(app, apiPath, API_VERSION); route.init(); };
4、使用中间件
5、在controllers的文件夹中使用装饰器
@controller('/user') export class UserController extends BaseController { constructor() { super(); } /** * * @api {post} /api/v1/user/create/ 添加用户 * @apiDescription 创建用户的接口 * @apiName createUser * @apiGroup users * @apiVersion 0.1.0 * @apiParam {string} username="张三" 用户名 * @apiParam {string} mobile 手机号码 * @apiParam {string} email 邮箱 * @apiParam {string} password 密码 */ @post('/create') @required({ body: ['username', 'mobile', 'password'] }) async createUser(ctx) { const result = await UserServer.createUser(ctx.request.body); ctx.success(result); } .... }
6、具体代码可以参考example中写的
三、关于example代码跑起来的说明
1、使用的是mysql
2、mysql建表sql
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `mobile` varchar(11) DEFAULT NULL, `email` varchar(20) DEFAULT NULL, `password` varchar(255) NOT NULL, `created_at` datetime DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8
3、在example的根目录下创建一个.env的文件
DB_HOST=数据库地址 DB_USERNAME=数据库连接名 DB_PASSWORD=数据库连接密码 DB_DATABASE=数据库名
四、源码地址,欢迎小伙伴提出问题,方便点赞一个
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
koa,路由装饰器
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“koa大型web项目中使用路由装饰器的方法示例”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年01月11日
2025年01月11日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]