美文网首页
Koa与Express

Koa与Express

作者: Nicklzy | 来源:发表于2021-07-03 14:02 被阅读0次

    历史

    • express
    1. 2010.6 TJ开始编写Express
    2. 2014年发展到v0.12,移交StrongLoop
    • Koa
    1. 2013.8 TJ开始编写koa
    2. 2015.8 koa 发布v1.0.0
    • Node.js
      1. 2013.3 Node.js v0.10
      2. 2014.12 io.js不满Node.js管理,发起分裂
      3. 2015.2 Node.js v0.12 发布
      4. 2015.9 Node.js与io.js合并发布为v4.0

    Koa的洋葱模型

    • 对比Express:Express是线性的
    • Koa模型
    //获取请求的时间
    app.use(async (ctx, next) => {
        const start = Date.now();
        await next();
        const ms = Date.now() - start;
        console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
    });
    

    express实现类似的U型模型

    • setHead不会出发writeHead
    • writeHead是end()的时候触发
    • 只有在手动提前调用writeHead(),才统计不到写body的时间 # app.xxx
    app.use(fn)
    app.on('error',fn)
    app.emit
    

    ctx.xxx

    • ctx means context
    • ctx.req //Node封装的请求
    • ctx.res
    • ctx.request //Koa封装的请求
    • ctx.response
    • ctx.state //跨中间件分享数据
    • ctx.app
    • ctx.cookies.get/set
    • ctx.throw
    • ctx.assert
    • ctx.respond // not recommand

    相关文章

      网友评论

          本文标题:Koa与Express

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