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

詳解IWinter 一個路由轉(zhuǎn)控制器的 Nodejs 庫

 更新時間:2017年11月15日 09:23:48   作者:yvanwangl  
本篇文章主要介紹了詳解IWinter 一個路由轉(zhuǎn)控制器的 Nodejs 庫,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

IWinter 是一個路由轉(zhuǎn)控制器的 node 庫,只解決一個問題:為了讓使用者以更優(yōu)雅的姿勢進(jìn)行路由的編寫。支持在 Express 和 Koa 中使用。

項目地址:https://github.com/yvanwangl/iwinter

簡介:

最近在學(xué)習(xí)使用 Typescript ,打算把以前寫的博客管理后臺用 Typescript 進(jìn)行全面重構(gòu),在重構(gòu)服務(wù)端代碼時接觸到使用了 Typescript 的裝飾器功能??梢杂醚b飾器對路由進(jìn)行一層包裝,然后就可以這樣編寫路由:

import {Path, GET, POST, PathParam, BodyParam} from 'iwinter';

@Path('/api/orders')
class OrdersController {

  @GET
  @Path('/:name/:id', (ctx, next)=> ~~ctx.params.id > 20)
    getAllOrders(@PathParam('id') id: number, @PathParam('name') name: string){
    return [{
        id: id, name, content: 'test', author: 'test', comments: []
      }];
  }

  @POST
  @Path('/add')
  addPost(@BodyParam('order') order: object){
    return order;
  }
}

export default OrdersController;

由于工作中會使用用 Java 編寫控制層代碼(Spring MVC 的控制層代碼),所以看到這樣的代碼簡直太親切了。而且相較于以前的路由編寫方式更清晰,更方便維護(hù),所以就將原來的的代碼進(jìn)行了改造。我使用之后發(fā)現(xiàn)非常好用,我就想讓更多的人都可以使用,所以就誕生了 IWinter 這個庫。IWinter 就是將各種裝飾器或裝飾器工廠函數(shù)進(jìn)行封裝然后暴露出一些 API 供大家使用。從此就告別這樣編寫路由了 ;)

//app.js
...
let users = require('./routes/users');
let orders = require('./routes/orders');

app.use('/api/users', users);
app.use('/api/orders', orders);
...

//routers/orders.js
...
router.route('/')
  .get(function (req, res, next) {
    let {page, timeRange, customerId, orderNumber} = req.query;
    let limit = constants.PAGE_SIZE;
    let skip = (page - 1) * limit;
    let currentUser = global[Symbol.for('currentUser')];
    let queryCondition = {
      userId: currentUser['_id']
    };
      ...

誰適合使用 IWinter:

  1. Nodejs 用戶
  2. Typescript 用戶
  3. Express / Koa 用戶

IWinter 安裝 及 使用

npm install --save iwinter
import IWinter from 'iwinter';

Koa 中如何使用:

import * as Router from 'koa-router';
...
app.use(new IWinter({
    engine: 'koa',
  router: new Router(),
  dir: path.join(__dirname, 'controller')
}).controller());
...

Express 中如何使用:

import * as express from 'express';
let app = express();
let router = express.Router();
...
new IWinter({
  engine: 'express',
  router: app,
  dir: path.join(__dirname, 'controller'),
    prefix: ''
}).controller();

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

相關(guān)文章

  • node.js回調(diào)函數(shù)之阻塞調(diào)用與非阻塞調(diào)用

    node.js回調(diào)函數(shù)之阻塞調(diào)用與非阻塞調(diào)用

    本文重點給大家介紹node.js回調(diào)函數(shù)之阻塞調(diào)用和非阻塞調(diào)用,涉及到node.js回調(diào)函數(shù)的相關(guān)知識,對本文感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • node.js實現(xiàn)上傳文件功能

    node.js實現(xiàn)上傳文件功能

    這篇文章主要為大家詳細(xì)介紹了node.js實現(xiàn)上傳文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 使用node.js搭建服務(wù)器

    使用node.js搭建服務(wù)器

    最近需要完成一個課程設(shè)計,被項目經(jīng)理(組長)分配寫界面功能,下面小編通過本文給大家分享使用使用node搭建小型服務(wù)器的方法,需要的朋友參考下
    2017-05-05
  • Node版本升級和降級之node版本管理工具nvm詳解

    Node版本升級和降級之node版本管理工具nvm詳解

    nvm是管理node版本的工具,一個電腦中可以安裝多個node版本,當(dāng)我們想使用哪個版本就切換成哪個版本,而nvm則是提供切換node版本的工具,這篇文章主要給大家介紹了關(guān)于Node版本升級和降級之node版本管理工具nvm的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析

    Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析

    這篇文章主要為大家介紹了Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 一文詳解Node中的文件模塊與核心模塊

    一文詳解Node中的文件模塊與核心模塊

    這篇文章主要介紹了一文詳解Node?中文件模塊與核心模塊,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • 使用DNode實現(xiàn)php和nodejs之間通信的簡單實例

    使用DNode實現(xiàn)php和nodejs之間通信的簡單實例

    這篇文章主要介紹了使用DNode實現(xiàn)php和nodejs之間通信的簡單實例,本文講解了DNode的安裝,以及使用的它的步驟和方法,需要的朋友可以參考下
    2015-07-07
  • 詳解Node.js 中使用 ECDSA 簽名遇到的坑

    詳解Node.js 中使用 ECDSA 簽名遇到的坑

    這篇文章主要介紹了詳解Node.js 中使用 ECDSA 簽名遇到的坑,主要是使用 Node.js 的 Crypto 模塊無法校驗網(wǎng)絡(luò)傳輸過來的簽名結(jié)果,感興趣的小伙伴們可以參考一下
    2018-11-11
  • node之本地服務(wù)器圖片上傳的方法示例

    node之本地服務(wù)器圖片上傳的方法示例

    這篇文章主要介紹了node之本地服務(wù)器圖片上傳的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • node?NPM庫string-random生成隨機(jī)字符串學(xué)習(xí)使用

    node?NPM庫string-random生成隨機(jī)字符串學(xué)習(xí)使用

    這篇文章主要為大家介紹了node?NPM庫string-random生成隨機(jī)字符串學(xué)習(xí)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評論