express与koa的一点对比

Posted jingouli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了express与koa的一点对比相关的知识,希望对你有一定的参考价值。

express: 

var express=require(‘express‘);
var app=express();

app.use((req,res,next)=>{
    console.log(1);     // 1
    next();             // 2
    console.log(2);     // 5  执行时机不确定,与是否异步有关
});

app.use((req,res,next)=>{
    console.log(3);     // 3
    new Promise(resolve=>{  // 4
        setTimeout(resolve,300);
    }).then(()=>{
        next();         // 6
        console.log(4); // 8
    })
});

app.use((req,res)=>{
    // 7
    res.send(‘Hello World‘);
});

app.listen(3000);

 

koa:

const Koa=require(‘koa‘);
const app=new Koa();

app.use(async (ctx,next)=>{
    console.log(1);     // 1
    next();             // 2  -----以next为分界线,会先执行next之前的方法,再执行next之后的方法
    console.log(2);     // 8  
});

app.use(async (ctx,next)=>{
    console.log(3);     // 3
    await new Promise(resolve=>{
        setTimeout(resolve,300);
    });     // 4

    await next();       // 5
    console.log(4);     // 7
});

app.use(async (ctx,next)=>{
    ctx.body=‘hello world‘;
});

app.listen(3000);

 

以上是关于express与koa的一点对比的主要内容,如果未能解决你的问题,请参考以下文章

koa和express对比

node+koa2+mongod构建项目及与express对比

koa源码阅读[1]-koa与koa-compose

有人用 koa2 框架吗

koa与express的中间件机制揭秘

如何评价 Node.js 的koa框架