IWinter一个路由转控制器的Nodejs库详解

本文主要介绍了详解iwinter 一个路由转控制器的 nodejs 库,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

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();

登录后复制

相关推荐:

Node.js设计模式使用流进行编码

Node.js设计模式使用流进行编码

Node.js设计模式使用流进行编码

以上就是IWinter一个路由转控制器的Nodejs库详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2790672.html

(0)
上一篇 2025年3月8日 19:00:02
下一篇 2025年3月8日 19:00:10

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • js ajax同步请求造成浏览器假死的问题如何解决?

    本文主要为大家分享一篇解决js ajax同步请求造成浏览器假死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。 一、问题的起因 今天做一个需求遇到了这么个情况,就是用户个人中心有个功能,点击按钮,可…

    编程技术 2025年3月8日
    200
  • nodejs最新版安装npm的使用方法分享

    本文主要介绍了nodejs 最新版安装npm 的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 # 安装 nodejs 以下介绍的是命令行安装方法,读者也可以到nodejs官网 上下…

    2025年3月8日
    200
  • javascript将url解析为json格式的两种方法

    本篇文章主要介绍了javascript将url解析为json格式的两种方法,具有一定的参考和学习javascript的价值,对javascript感兴趣的小伙伴们可以参考一下本篇文章 本文介绍了javascript将url解析为json格式…

    2025年3月8日
    200
  • JS模拟超市简易收银台小程序代码解析

    本文通过实例代码给大家介绍了js模拟超市简易收银台小程序代码,非常不错,具有参考和学习js的价值,对js感兴趣的的朋友参考下吧 废话不多说了,直接给大家贴代码了,具体代码如下所示:   // 1.编写一个程序,计算增加后的工资。要求基本工资…

    编程技术 2025年3月8日
    200
  • JavaScript 完成注册页面表单校验的实例

    下面小编就为大家带来一篇javascript 完成注册页面表单校验的实例。小编觉得挺不错的,现在就分享js源码给大家,也给大家做个参考。对javascript感兴趣的一起跟随小编过来看看吧 1、步骤分析 第一步:确定事件(onsubmit)…

    编程技术 2025年3月8日
    200
  • JavaScript文件的同步和异步加载的实现代码

    本篇文章主要介绍了javascript文件的同步和异步加载的实现代码,具有一定的参考和学习javascript的价值,对javascript感兴趣的可以了解一下本篇文章 对于JS文件的引用,尽管当前有不少框架和工具(比如webpack,co…

    2025年3月8日 编程技术
    200
  • JavaScript实现为事件句柄绑定监听函数实例详解

    本文主要介绍了javascript实现为事件句柄绑定监听函数的方法,结合实例形式分析了javascript事件绑定的常用技巧与注意事项,需要的朋友可以参考下,希望能帮助到大家。 在JavaScript中为Dom元素绑定事件监听函数是一件非常…

    编程技术 2025年3月8日
    200
  • JavaScript函数绑定用法解析

    本文主要介绍了javascript函数绑定用法,结合实例形式分析了javascript函数绑定的原理、实现方法与相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 Perface 如果让你实现这个页面和一些操作的,比如点击1、2、3等就…

    2025年3月8日
    200
  • JS获取汉字首字母拼音、全拼音及混拼音实现方法

    本文主要介绍了js实现获取汉字首字母拼音、全拼音及混拼音的方法,涉及针对chinesepy.js插件的使用及事件响应相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载。 运行效…

    2025年3月8日
    200
  • JS中图片压缩实现方法

    本文主要介绍了js中图片压缩的方法,包括等比压缩图片的方法,需要的朋友可以参考下,希望能帮助到大家。 首先想一想我们有哪些需求?大多时候我们需要将一个File对象压缩之后再变为File对象传入到远程图片服务器;有时候我们也需要将一个base…

    2025年3月8日
    200

发表回复

登录后才能评论