国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

koa大型web項(xiàng)目中使用路由裝飾器的方法示例

2024-05-06 15:41:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、關(guān)于重復(fù)造輪子解釋下

在npmjs上搜索關(guān)于koa路由裝飾器的已經(jīng)有那么幾個(gè)包了,但是我從幾個(gè)包中發(fā)現(xiàn)作者的思維僅僅限制于前端開(kāi)發(fā)的思想,項(xiàng)目分層不明確,我們開(kāi)發(fā)kow-web項(xiàng)目可以根據(jù)java-web中項(xiàng)目分層的思想來(lái)寫(xiě)項(xiàng)目,項(xiàng)目結(jié)構(gòu)清晰明了,本人封裝這個(gè)包也是參考了java-web開(kāi)發(fā)過(guò)程中把項(xiàng)目分為四層架構(gòu)。

1、controllers:路由的控制
2、servers:常用于一些業(yè)務(wù)邏輯的判斷
3、dao:操作數(shù)據(jù)庫(kù)的
4、models:關(guān)于建表的數(shù)據(jù)模型

二、關(guān)于koa2-router-decors包的使用步驟

1、構(gòu)建一個(gè)項(xiàng)目,并創(chuàng)建分層目錄

2、安裝

npm install koa2-router-decors// oryarn add koa2-router-decors

3、在中間件中使用我們安裝的包

import { resolve } from 'path';import Route from 'koa2-router-decors';// 可以寫(xiě)到config中統(tǒng)一配置const API_VERSION = '/api/v1';/** * @Description: 反轉(zhuǎn)路徑的方法 * @param {String}  * @return:  */const dir = path => resolve(__dirname, path);/** * @Description: 路由中間件讀取controllers中的裝飾器配置 * @param {type}  * @return:  */export default (app) => { // 這個(gè)地方是要讀取的文件夾目錄 const apiPath = dir('../controllers/*'); // 實(shí)例化類并調(diào)用方法 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 創(chuàng)建用戶的接口  * @apiName createUser  * @apiGroup users  * @apiVersion 0.1.0  * @apiParam {string} username="張三" 用戶名  * @apiParam {string} mobile 手機(jī)號(hào)碼  * @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中寫(xiě)的

三、關(guān)于example代碼跑起來(lái)的說(shuō)明

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的根目錄下創(chuàng)建一個(gè).env的文件

DB_HOST=數(shù)據(jù)庫(kù)地址DB_USERNAME=數(shù)據(jù)庫(kù)連接名DB_PASSWORD=數(shù)據(jù)庫(kù)連接密碼DB_DATABASE=數(shù)據(jù)庫(kù)名            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 黎平县| 西充县| 水城县| 夏邑县| 宣武区| 汕尾市| 兴仁县| 临海市| 南投县| 饶阳县| 乌鲁木齐县| 云霄县| 荆门市| 庆城县| 河北省| 忻州市| 云和县| 岳池县| 五莲县| 北宁市| 疏勒县| 文登市| 攀枝花市| 山丹县| 石门县| 新巴尔虎右旗| 文昌市| 合川市| 额敏县| 伽师县| 习水县| 肥西县| 崇文区| 晋宁县| 开平市| 连江县| 锡林浩特市| 汾阳市| 内丘县| 龙山县| 渭南市|