ホームページ  >  記事  >  ウェブフロントエンド  >  コントローラーへのルーティング Nodejs ライブラリー IWinter の詳細な説明

コントローラーへのルーティング Nodejs ライブラリー IWinter の詳細な説明

小云云
小云云オリジナル
2018-01-18 17:04:221367ブラウズ

この記事では主に、ルーティングからコントローラーへの Nodejs ライブラリである IWinter を紹介します。編集者はこれが非常に優れていると考えたので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

IWinter は、ルートをコントローラーに変換するノード ライブラリです。解決できる問題は 1 つだけです。それは、ユーザーがよりエレガントな方法でルートを作成できるようにすることです。 Express および Koa での使用がサポートされています。

プロジェクトアドレス: https://github.com/yvanwangl/iWinter

はじめに:

最近Typescriptの使い方を勉強したので、以前書いたブログ管理のバックエンドをTypescriptを使って完全に再構築し、サーバーを再構築する予定です。サイド コーディングをしているときにTypescriptのデコレータ機能に出会いました。デコレーターを使用してルートをラップし、次のようにルートを記述することができます:


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 制御層コード) を記述するため、次のようなコードが表示されます。とても甘かったです。さらに、以前のルートの記述方法と比較して、より明確で保守が容易になったため、元のコードが変換されました。実際に使ってみてとても便利だったので、もっと多くの人に使ってもらいたいと思い、ライブラリ IWinter が誕生しました。 IWinter は、さまざまなデコレータまたはデコレータ ファクトリ関数をカプセル化し、誰もが使用できるようにいくつかの 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 ユーザー

I 冬のインストールそして使用してください


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();

関連する推奨事項:

Node.js デザインパターンの使用コーディング用のストリーム

まずはNode.jsの環境変数process.envについて詳しく説明します

JSとNode.jsのイベントループについて詳しく説明します

以上がコントローラーへのルーティング Nodejs ライブラリー IWinter の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。