国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 广水市| 凤阳县| 龙里县| 克山县| 桃源县| 故城县| 陆川县| 额敏县| 南开区| 灌南县| 汉寿县| 安丘市| 灌南县| 青龙| 眉山市| 安仁县| 临安市| 丰台区| 三门县| 盐津县| 嵊泗县| 五指山市| 广丰县| 岳阳市| 双柏县| 扶绥县| 广平县| 衡山县| 宜阳县| 三门峡市| 夏邑县| 龙井市| 定兴县| 金塔县| 鹿邑县| 黄石市| 道孚县| 阆中市| 大方县| 喜德县| 全州县|