Maison > Article > interface Web > Explication détaillée d'IWinter, une bibliothèque Nodejs de routage vers le contrôleur
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;
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'] }; ...
Qui est apte à utiliser IWinter :
Nodejs utilisateurs
Utilisateurs Typescript
Utilisateurs Express / Koa
Installation et utilisation hivernale
npm install --save iwinter
import IWinter from 'iwinter';
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()); ...
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();
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!