详解IWinter 一个路由转控制器的 Nodejs 库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了详解IWinter 一个路由转控制器的 Nodejs 库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2194字,纯文字阅读大概需要4分钟。
内容图文
![详解IWinter 一个路由转控制器的 Nodejs 库](/upload/InfoBanner/zyjiaocheng/340/62063ec2d39b4dd6be3ab638a2d9d340.jpg)
IWinter 是一个路由转控制器的 node 库,只解决一个问题:为了让使用者以更优雅的姿势进行路由的编写。支持在 Express 和 Koa 中使用。
项目地址:https://github.com/yvanwangl/iwinter
简介:
最近在学习使用 Typescript ,打算把以前写的博客管理后台用 Typescript 进行全面重构,在重构服务端代码时接触到使用了 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 这个库。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:
- Nodejs 用户
- Typescript 用户
- Express / Koa 用户
IWinter 安装 及 使用
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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
内容总结
以上是互联网集市为您收集整理的详解IWinter 一个路由转控制器的 Nodejs 库全部内容,希望文章能够帮你解决详解IWinter 一个路由转控制器的 Nodejs 库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。