博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Express和Koa的对比
阅读量:5782 次
发布时间:2019-06-18

本文共 647 字,大约阅读时间需要 2 分钟。

概述

Express和Koa都出自同一个团队,通过对比它们的源码,可以看出来Koa更加成熟,代码更加易读,逻辑更加清晰。

比如: Express随处可见的var,和Koa的let、const; Express使用function作为构造函数,而Koa使用class、extend代替;

当然还有框架思想上也是有区别的,请接着往下看。

1. 中间件的入参

Express和Koa都增强了NodeJS原生的http.IncomingMessagehttp.ServerResponse,但是Koa还把它们两个都整合到了context上下文对象。

2. 中间件的处理方式

很多人都说Koa是洋葱模型,而Express是直线模型,其实这样说不严谨。

在中间件都是同步函数的时候,它们的执行结果是一样的;但是,当中间件是异步函数的时候,情况就不一样了,因为Koa的中间件可以返回Promise实例,所以可以通过Promise.then()或者async / await来控制执行顺序,而Express没有支持这个,它只是按照顺序或者可以提前通过next把执行权交给下一个中间件,如果某个中间件是异步函数的,了解过JavaScript的事件循环的话,我们知道结果是不如意的。

3. 内置模块

相对于Express,Koa没有了内置的路由功能、模板引擎,仅保留了中间件模块。

但是我们可以通过引入kow-routerkow-view等库来实现相同的功能。

作者只是把选择权交给了使用者,但是没有删减功能。

转载地址:http://ldjyx.baihongyu.com/

你可能感兴趣的文章
Sqlserver数据库中,跨权限执行语句
查看>>
IP地址表达方式
查看>>
隐藏在QRCode二维码背后的秘密
查看>>
简易socket.io demo
查看>>
快学 Go 语言 第 1 课 —— Hello World
查看>>
mysql 触发器
查看>>
MariaDB强制修改root密码
查看>>
where与having的区别
查看>>
设计模式(十)装饰器模式
查看>>
FB 宕机,Telegram 用户疯涨,P**hub 流量猛增
查看>>
python之time和datetime模块
查看>>
Python学习资源整理
查看>>
Mac中的定时任务利器:launchctl
查看>>
java序列化浅谈
查看>>
Confluence 6.7 如何查看已经安装的插件
查看>>
你试过不用if撸代码吗?
查看>>
webpack打包nodejs项目(前端代码)
查看>>
使用指针比较整型数据的大小
查看>>
Elasticsearch-通过Kibana查看索引数据
查看>>
森莎创建树形菜单和按钮触发行为
查看>>