>  기사  >  웹 프론트엔드  >  라우팅-컨트롤러 Nodejs 라이브러리인 IWinter에 대한 자세한 설명

라우팅-컨트롤러 Nodejs 라이브러리인 IWinter에 대한 자세한 설명

小云云
小云云원래의
2018-01-18 17:04:221367검색

이 글에서는 Routing-to-Controller Nodejs 라이브러리인 IWinter를 주로 소개합니다. 편집자가 꽤 좋다고 생각해서 지금 공유하고 참고용으로 올려보겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

IWinter는 경로를 컨트롤러로 변환하는 노드 라이브러리로, 사용자가 보다 우아한 방식으로 경로를 작성할 수 있도록 하는 한 가지 문제만 해결합니다. Express 및 Koa에서 사용이 지원됩니다.

프로젝트 주소 : https://github.com/yvanwangl/iwinter

소개 :

최근 Typescript 사용법을 배우면서, Typescript를 사용하여 이전에 작성했던 블로그 관리 백엔드를 완전히 재구성하고, 서버도 재구성할 예정입니다. side 코딩을 하다가 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는 다양한 데코레이터 또는 데코레이터 팩토리 기능을 캡슐화하고 모든 사람이 사용할 수 있도록 일부 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 사용에 적합한 사람:

  1. Nodejs 사용자

  2. Typescript 사용자

  3. Express / Koa 사용자

I 겨울 설치 and use


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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.