この記事では主に、ルーティングからコントローラーへの 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 の使用に適している人:
Nodejs ユーザー
Typescript ユーザー
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 サイトの他の関連記事を参照してください。