美文网首页
JavaScript实现类koa中间件方法

JavaScript实现类koa中间件方法

作者: halapro_liu | 来源:发表于2020-05-23 00:54 被阅读0次

前言

在前端各种异步方法当道的今天,各种异步方法让人求生不得,求死不能。因此,寻求一个好的解决方案,还是能让人陶醉的。其中koa和express的中间件,给了我思路。下面是实现方法。

实现方式

class Iterator {
    constructor () {
        this.middlewares = []
    }

    use (module) {
        Array.isArray(module) ? module.map(item => this.use(item)) : this.middlewares.push(module)
        return this
    }

    async run (ctx) {
        function createNext (middleware, oldNext) {
            return async () => {
                await middleware(ctx, oldNext)
            }
        }

        let len = this.middlewares.length
        let next = async () => {
            return Promise.resolve()
        }

        for (let i = len - 1; i >= 0; i--) {
            let currentMiddleware = this.middlewares[i]
            next = createNext(currentMiddleware, next)
        }
        await next()
    }
}

使用方法

let app = new Iterator();
app.use(async (ctx,next)=>{
    console.log("start:a");
    await next();
    console.log("end:a");
});
 
app.use(async (ctx,next)=>{
    console.log("start:b");
    await next();
    console.log("end:b");
});
app.run();

相关文章

  • JavaScript实现类koa中间件方法

    前言 在前端各种异步方法当道的今天,各种异步方法让人求生不得,求死不能。因此,寻求一个好的解决方案,还是能让人陶醉...

  • 8KOA 静态文件

    静态文件 使用 koa-static 中间件实现静态文件访问 安装中间件 使用中间件 使用 koa-mount 自...

  • 【koa2】koa-static-router 中间件搭建静态资

    koa中间件 koa-static-router中间件搭建静态资源服务器, 实现多个&&多层路由加载静态资源 源码...

  • koa

    koa的处理流程 koa的中间件 洋葱模型实现 通过await next();进入下一个中间件 next是comp...

  • koa必备插件分析:koa-session的内部实现

    koa-session的使用方法 koa-session是在koa应用中用于记录请求者身份的常用中间件,其使用方法...

  • koa系列(三)

    文章内容:koa 中间件 以及 koa 中间件的执行流程。 一、什么是 Koa 的中间件 中间件就是匹配路由之前或...

  • 知识点总结

    Koa2中间件 koa(面向node.js的表达式HTTP中间件框架)、koa-router(路由中间件)、koa...

  • Koa2源码阅读: 中间件机制

    中间件机制(洋葱模型):它实现中间件级联调用是借助 koa-compose这个库来实现的。源码只有一个函数。 我...

  • koa-body 获取不到文件的原因

    问题描述:在koa项目中,使用koa-body中间件来实现文件的上传功能,但是通过ctx.request.body...

  • koa

    koa 学习 中间件 koa-router koa-router 获取get/post请求参数 koa-bodyp...

网友评论

      本文标题:JavaScript实现类koa中间件方法

      本文链接:https://www.haomeiwen.com/subject/buihahtx.html