In diesem Artikel wird hauptsächlich IWinter vorgestellt, eine Routing-to-Controller-Nodejs-Bibliothek. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
IWinter ist eine Knotenbibliothek, die Routen in Controller umwandelt. Sie löst nur ein Problem: Benutzern das Schreiben von Routen auf elegantere Weise zu ermöglichen. Unterstützt für die Verwendung in Express und Koa.
Projektadresse: https://github.com/yvanwangl/iwinter
Einführung:
Ich lerne kürzlich den Umgang mit Typescript und habe vor, dies zu tun schreibe es in der Vergangenheit Das Blog-Management-Backend wurde komplett mit Typescript rekonstruiert. Bei der Rekonstruktion des Servercodes bin ich mit der Decorator-Funktion von Typescript in Berührung gekommen. Sie können einen Dekorator verwenden, um die Route zu umschließen, und dann können Sie die Route wie folgt schreiben:
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;
Da Sie Java verwenden werden, um den Code der Kontrollschicht zu schreiben (Spring (MVC) in Ihrem Code der Arbeitssteuerungsschicht), daher ist es sehr schön, solchen Code zu sehen. Darüber hinaus ist es im Vergleich zur vorherigen Methode zum Schreiben von Routen klarer und einfacher zu warten, sodass der ursprüngliche Code transformiert wurde. Nachdem ich es verwendet hatte, fand ich es sehr einfach zu verwenden und ich wollte, dass mehr Leute es verwenden, also wurde die Bibliothek IWinter geboren. IWinter kapselt verschiedene Dekorateur- oder Dekorator-Factory-Funktionen und stellt einige APIs zur Verfügung, die jeder verwenden kann. Verabschieden Sie sich von nun an davon, solche Routen zu schreiben ;)
//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'] }; ...
Wer ist für die Verwendung von IWinter geeignet:
Nodejs Benutzer
Typescript-Benutzer
Express-/Koa-Benutzer
IWinter-Installation und -Nutzung
npm install --save iwinter
import IWinter from 'iwinter';
Anwendung in Koa:
import * as Router from 'koa-router'; ... app.use(new IWinter({ engine: 'koa', router: new Router(), dir: path.join(__dirname, 'controller') }).controller()); ...
Verwendung in 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();
Verwandte Empfehlungen:
Node.js-Design Muster verwendet Streams zur Codierung
Eine ausführliche Erklärung der Umgebungsvariablen Process.env in Node.js
Eine detaillierte Erklärung der Ereignisschleife in JS und Node.js
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von IWinter, einer Nodejs-Bibliothek für das Routing zum Controller. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!