欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

koa大型web項目中使用路由裝飾器的方法示例

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

一、關于重復造輪子解釋下

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

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

二、關于koa2-router-decors包的使用步驟

1、構建一個項目,并創(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';
// 可以寫到config中統(tǒng)一配置
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 創(chuàng)建用戶的接口
  * @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的根目錄下創(chuàng)建一個.env的文件

DB_HOST=數(shù)據(jù)庫地址
DB_USERNAME=數(shù)據(jù)庫連接名
DB_PASSWORD=數(shù)據(jù)庫連接密碼
DB_DATABASE=數(shù)據(jù)庫名

四、源碼地址,歡迎小伙伴提出問題,方便點贊一個

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 在 Node.js 中使用原生 ES 模塊方法解析

    在 Node.js 中使用原生 ES 模塊方法解析

    這篇文章主要介紹了在 Node.js 中使用原生 ES 模塊方法解析,還有部分內容的鏈接,下面我們就來一起看看吧,需要的朋友可以參考下。
    2017-09-09
  • 使用npm發(fā)布Node.JS程序包教程

    使用npm發(fā)布Node.JS程序包教程

    這篇文章主要介紹了使用npm發(fā)布Node.JS程序包教程,本文講解了配置package.json、注冊npm帳號、發(fā)布程序包等內容,需要的朋友可以參考下
    2015-03-03
  • nodejs教程之環(huán)境安裝及運行

    nodejs教程之環(huán)境安裝及運行

    文章從nodejs環(huán)境安裝、文件結構、路由做了詳細介紹,然后結合mongodb制作注冊功能也做了細致的講述,是篇非常不錯的文章,這里推薦給大家
    2014-11-11
  • Node.js如何快速導出多表頭的excel文件實現(xiàn)方法

    Node.js如何快速導出多表頭的excel文件實現(xiàn)方法

    這篇文章主要為大家介紹了Node.js如何快速導出多表頭的excel文件實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • node文件資源管理器的解壓縮從零實現(xiàn)

    node文件資源管理器的解壓縮從零實現(xiàn)

    這篇文章主要為大家介紹了node文件資源管理器的解壓縮從零實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 詳解NodeJS模塊化

    詳解NodeJS模塊化

    簡單的說Node.js就是運行在服務端的JavaScript。Node.js是一個基于Chrome JavaScript運行時建立的一個平臺。Node.js是一個事件驅動I/O服務端JavaScript環(huán)境,基于Google的V8引擎,V8引擎執(zhí)行Javascript的速度非???,性能非常好
    2021-06-06
  • Node.js中用D3.js的方法示例

    Node.js中用D3.js的方法示例

    這篇文章主要給大家介紹了在Node.js中用D3.js的方法,文中分別介紹了如何安裝模塊和一小段簡單的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 修改NPM全局模式的默認安裝路徑的方法

    修改NPM全局模式的默認安裝路徑的方法

    這篇文章主要介紹了修改NPM全局模式的默認安裝路徑的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Nestjs自定義注解實現(xiàn)接口權限控制詳解

    Nestjs自定義注解實現(xiàn)接口權限控制詳解

    這篇文章主要為大家介紹了Nestjs自定義注解實現(xiàn)接口權限控制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • node鏈接mongodb數(shù)據(jù)庫的方法詳解【阿里云服務器環(huán)境ubuntu】

    node鏈接mongodb數(shù)據(jù)庫的方法詳解【阿里云服務器環(huán)境ubuntu】

    這篇文章主要介紹了node鏈接mongodb數(shù)據(jù)庫的方法,結合實例形式分析了nodejs基于阿里云服務器環(huán)境ubuntu下實現(xiàn)連接MongoDB數(shù)據(jù)庫的相關操作技巧,需要的朋友可以參考下
    2019-03-03

最新評論