Heim > Web-Frontend > js-Tutorial > Hauptteil

Ausführliche Erläuterung von IWinter, einer Nodejs-Bibliothek für das Routing zum Controller

小云云
Freigeben: 2018-01-18 17:04:22
Original
1418 Leute haben es durchsucht

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;
Nach dem Login kopieren

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']
    };
      ...
Nach dem Login kopieren

Wer ist für die Verwendung von IWinter geeignet:

  1. Nodejs Benutzer

  2. Typescript-Benutzer

  3. Express-/Koa-Benutzer

IWinter-Installation und -Nutzung


npm install --save iwinter
Nach dem Login kopieren


import IWinter from 'iwinter';
Nach dem Login kopieren

Anwendung in Koa:


import * as Router from 'koa-router';
...
app.use(new IWinter({
    engine: 'koa',
  router: new Router(),
  dir: path.join(__dirname, 'controller')
}).controller());
...
Nach dem Login kopieren

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();
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage