最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年04月02日 15:04:34   作者:水痕001  
這篇文章主要介紹了koa大型web項(xiàng)目中使用路由裝飾器的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、關(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
// or
yarn 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ù)名

四、源碼地址,歡迎小伙伴提出問(wèn)題,方便點(diǎn)贊一個(gè)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nodejs代碼執(zhí)行繞過(guò)的一些技巧匯總

    nodejs代碼執(zhí)行繞過(guò)的一些技巧匯總

    這篇文章主要給大家介紹了關(guān)于nodejs代碼執(zhí)行繞過(guò)的一些技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例

    node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例

    這篇文章主要介紹了node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例,在node的程序中,如果有大數(shù)據(jù)量的計(jì)算,處理起來(lái)比較慢,可以用C++來(lái)處理,然后通過(guò)回調(diào)(callback的形式),返回給node,需要的朋友可以參考下
    2015-07-07
  • 深入剖析Node.js cluster模塊

    深入剖析Node.js cluster模塊

    Node的單線程設(shè)計(jì)已經(jīng)沒(méi)法更充分的"壓榨"機(jī)器性能了,Node新增了一個(gè)內(nèi)置模塊cluster,它可以通過(guò)一個(gè)父進(jìn)程管理一坨子進(jìn)程的方式來(lái)實(shí)現(xiàn)集群的功能,這篇文章主要介紹了深入剖析Node.js cluster模塊,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Nodejs回調(diào)加超時(shí)限制兩種實(shí)現(xiàn)方法

    Nodejs回調(diào)加超時(shí)限制兩種實(shí)現(xiàn)方法

    這篇文章主要介紹了Nodejs回調(diào)加超時(shí)限制兩種實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Node.js中調(diào)用mysql存儲(chǔ)過(guò)程示例

    Node.js中調(diào)用mysql存儲(chǔ)過(guò)程示例

    這篇文章主要介紹了Node.js中調(diào)用mysql存儲(chǔ)過(guò)程示例,本文在windows環(huán)境測(cè)試通過(guò),本文一并給出了創(chuàng)建數(shù)據(jù)庫(kù)、錄入數(shù)據(jù)、創(chuàng)建存儲(chǔ)過(guò)程、調(diào)用存儲(chǔ)過(guò)程等例子,需要的朋友可以參考下
    2014-12-12
  • Node.js簡(jiǎn)單入門(mén)前傳

    Node.js簡(jiǎn)單入門(mén)前傳

    Node.js 是一個(gè)基于Chrome JavaScript 運(yùn)行時(shí)建立的一個(gè)平臺(tái)。接下來(lái)通過(guò)本文給大家分享node.js 入門(mén)前傳,感興趣的朋友一起看看吧
    2017-08-08
  • NestJS系列核心概念之Module模塊示例詳解

    NestJS系列核心概念之Module模塊示例詳解

    這篇文章主要為大家介紹了NestJS系列核心概念之Module模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • node后端服務(wù)?;畹膶?shí)現(xiàn)

    node后端服務(wù)?;畹膶?shí)現(xiàn)

    這篇文章主要介紹了node后端服務(wù)保活的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 基于NodeJS的前后端分離的思考與實(shí)踐(二)模版探索

    基于NodeJS的前后端分離的思考與實(shí)踐(二)模版探索

    在傳統(tǒng)的開(kāi)發(fā)模式中,瀏覽器端與服務(wù)器端是由不同的前后端兩個(gè)團(tuán)隊(duì)開(kāi)發(fā),但是模版卻又在這兩者中間的模糊地帶。因此模版上面總不可避免的越來(lái)越多復(fù)雜邏輯,最終難以維護(hù)。
    2014-09-09
  • Node.js中參數(shù)傳遞的兩種方式詳解

    Node.js中參數(shù)傳遞的兩種方式詳解

    這篇文章主要為大家介紹了Node.js中參數(shù)傳遞的兩種方式:GET方式和POST方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04

最新評(píng)論

鲁山县| 九江市| 界首市| 沙田区| 社会| 芮城县| 资溪县| 克什克腾旗| 霍邱县| 荔波县| 新余市| 浠水县| 肃宁县| 泸水县| 密山市| 麦盖提县| 资阳市| 建湖县| 蒙山县| 延边| 东安县| 肇源县| 徐水县| 德清县| 临清市| 丹巴县| 济宁市| 昭通市| 依兰县| 保定市| 开阳县| 冕宁县| 中山市| 南康市| 乌兰浩特市| 平乐县| 河西区| 阿克陶县| 南川市| 莱芜市| 阿拉善左旗|