Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée d'IWinter, une bibliothèque Nodejs de routage vers le contrôleur

小云云
Libérer: 2018-01-18 17:04:22
original
1376 Les gens l'ont consulté

Cet article présente principalement IWinter, une bibliothèque Nodejs de routage vers contrôleur. L'éditeur la trouve plutôt bonne, je vais donc la partager avec vous maintenant et la donner comme référence. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.

IWinter est une bibliothèque de nœuds qui convertit les routes en contrôleurs. Elle ne résout qu'un seul problème : permettre aux utilisateurs d'écrire des routes de manière plus élégante. Pris en charge pour une utilisation dans Express et Koa.

Adresse du projet : https://github.com/yvanwangl/iwinter

Introduction :

J'apprends à utiliser Typescript récemment et je prévois de le faire écrire dans le passé Le backend de gestion du blog a été entièrement reconstruit à l'aide de Typescript. Lors de la reconstruction du code du serveur, je suis entré en contact avec la fonction décorateur de Typescript. Vous pouvez utiliser un décorateur pour envelopper l'itinéraire, puis écrire l'itinéraire comme ceci :


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;
Copier après la connexion

Puisque vous utiliserez Java pour écrire le code de la couche de contrôle (Spring MVC) dans le code de votre couche de contrôle de travail), c'est donc si gentil de voir un tel code. De plus, par rapport à la manière précédente d’écrire les itinéraires, elle est plus claire et plus facile à maintenir, le code original a donc été transformé. Après l'avoir utilisé, je l'ai trouvé très facile à utiliser et je voulais que davantage de personnes l'utilisent, c'est pourquoi la bibliothèque IWinter est née. IWinter encapsule diverses fonctions de décorateurs ou d'usine de décorateurs et expose certaines API que tout le monde peut utiliser. Dites adieu à l'écriture d'itinéraires comme celui-ci à partir de maintenant ;)


//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']
    };
      ...
Copier après la connexion

Qui est apte à utiliser IWinter :

  1. Nodejs utilisateurs

  2. Utilisateurs Typescript

  3. Utilisateurs Express / Koa

Installation et utilisation hivernale


npm install --save iwinter
Copier après la connexion


import IWinter from 'iwinter';
Copier après la connexion

Comment utiliser en Koa :


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

Comment utiliser dans 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();
Copier après la connexion

Recommandations associées :

Conception Node.js le modèle utilise des flux pour l'encodage

Une explication détaillée de la variable d'environnement process.env dans Node.js

Une explication détaillée de la boucle d'événement en JS et Node.js

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!