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

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

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

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

項(xiàng)目地址:https://github.com/yvanwangl/iwinter

簡(jiǎn)介:

最近在學(xué)習(xí)使用 Typescript ,打算把以前寫的博客管理后臺(tái)用 Typescript 進(jìn)行全面重構(gòu),在重構(gòu)服務(wù)端代碼時(shí)接觸到使用了 Typescript 的裝飾器功能??梢杂醚b飾器對(duì)路由進(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;

由于工作中會(huì)使用用 Java 編寫控制層代碼(Spring MVC 的控制層代碼),所以看到這樣的代碼簡(jiǎn)直太親切了。而且相較于以前的路由編寫方式更清晰,更方便維護(hù),所以就將原來的的代碼進(jìn)行了改造。我使用之后發(fā)現(xiàn)非常好用,我就想讓更多的人都可以使用,所以就誕生了 IWinter 這個(gè)庫。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();

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

相關(guān)文章

  • 使用Node.js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的FastCGI服務(wù)器實(shí)例

    使用Node.js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的FastCGI服務(wù)器實(shí)例

    這篇文章主要介紹了使用Node.js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的FastCGI服務(wù)器實(shí)例,也可以作為一個(gè)比較詳細(xì)的Node.js服務(wù)器創(chuàng)建教程,需要的朋友可以參考下
    2014-06-06
  • node.js中的http.request方法使用說明

    node.js中的http.request方法使用說明

    這篇文章主要介紹了node.js中的http.request方法使用說明,本文介紹了http.request的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼需要的朋友可以參考下
    2014-12-12
  • 如何利用node轉(zhuǎn)發(fā)請(qǐng)求詳解

    如何利用node轉(zhuǎn)發(fā)請(qǐng)求詳解

    這篇文章主要給大家介紹了關(guān)于利用node轉(zhuǎn)發(fā)請(qǐng)求的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 在Node.js中處理CORS問題的解決方案

    在Node.js中處理CORS問題的解決方案

    當(dāng)今的網(wǎng)絡(luò)應(yīng)用程序越來越多地涉及跨域資源共享(CORS)問題,這是因?yàn)楝F(xiàn)代瀏覽器實(shí)施了安全策略,限制了跨源HTTP請(qǐng)求,什么是CORS?如何在Node.js中處理CORS問題,需要的朋友可以參考下
    2024-07-07
  • Node.js設(shè)置CORS跨域請(qǐng)求中多域名白名單的方法

    Node.js設(shè)置CORS跨域請(qǐng)求中多域名白名單的方法

    這篇文章主要介紹了Node.js設(shè)置CORS跨域請(qǐng)求中多域名白名單的方法,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • nodejs的http和https下載遠(yuǎn)程資源post數(shù)據(jù)實(shí)例

    nodejs的http和https下載遠(yuǎn)程資源post數(shù)據(jù)實(shí)例

    這篇文章主要為大家介紹了nodejs的http和https下載遠(yuǎn)程資源post數(shù)據(jù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 淺談Node異步編程的機(jī)制

    淺談Node異步編程的機(jī)制

    本篇文章主要介紹了淺談Node異步編程的機(jī)制,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • nodejs實(shí)現(xiàn)獲取本地文件夾下圖片信息功能示例

    nodejs實(shí)現(xiàn)獲取本地文件夾下圖片信息功能示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)獲取本地文件夾下圖片信息功能,涉及node.js針對(duì)文件、目錄的遍歷、讀取等相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • Node.js通過配置?strict-ssl=false解決npm安裝卡住問題

    Node.js通過配置?strict-ssl=false解決npm安裝卡住問題

    使用npm安裝依賴包是常見的任務(wù)之一,有時(shí)會(huì)遇到安裝卡住的問題,本文就來介紹一下通過配置?strict-ssl=false解決npm安裝卡住問題,感興趣的可以了解一下
    2024-12-12
  • 使用Node.js搭建Web服務(wù)器

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

    這篇文章介紹了使用Node.js搭建Web服務(wù)器的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

肥乡县| 紫金县| 泾阳县| 饶河县| 金溪县| 梁山县| 治县。| 康定县| 光山县| 罗江县| 扶绥县| 图片| 宾阳县| 汕尾市| 罗源县| 绥江县| 武定县| 沛县| 皮山县| 洛宁县| 鄂托克旗| 米泉市| 崇左市| 北碚区| 云林县| 舒城县| 高要市| 林甸县| 循化| 蓝山县| 云安县| 海盐县| 东源县| 高安市| 清水县| 东宁县| 通州区| 临泉县| 无为县| 印江| 山阳县|