开启一个静态文件服务
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…