koa和exress的区别

107 阅读1分钟

开启一个静态文件服务
koa:

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

const koaStatic = require('koa-static');
const path = require('path');
app.use(koaStatic(path.resolve(__dirname, './public')));

app.listen(5000, () => {
    console.log('5000开启');
});

express:

const express = require('express');
const app = express();
const path = require('path');

app.use(express.static(path.resolve(__dirname, './public')));

app.listen(5000, () => {
    console.log('5000开启');
});

1、express内置了路由和视图功能,koa更轻量(没有捆绑任何中间件)

2、异步流控制

Express 采用 callback 来处理异步,Koa v1 采用 generator,Koa v2 采用 async/await。

3、 捕获异常

Express 使用 callback 捕获异常,对于深层次的异常捕获不了, Koa 使用 try catch,能更好地解决异常捕获。

4、Http Request

koa1使用this取代Express的req、res;

5、 Context

Koa新增了一个Context对象,用来代替Express的Request和Response,作为请求的上下文对象。 还有Node原生提供的req、res、socket等对象;

参考:
koa洋葱模型: segmentfault.com/a/119000001…

juejin.cn/post/684490… zhuanlan.zhihu.com/p/115339314 segmentfault.com/a/119000002…