• 欢迎访问web前端中文站,JavaScript,CSS3,HTML5,web前端demo
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏web前端中文站吧

闲谈Node.js 的Koa框架和Express框架

JAVA web前端中文站 2年前 (2017-08-09) 1083次浏览 已收录 0个评论

Koa 是一个基于 Node.js 平台的下一代 web 开发框架。网上对 koa 框架的学习教程并不多,因此我整理了一些关于 koa 框架的学习教程,方便大家学习!

更多精彩内容请看 web 前端中文站
http://www.lisa33xiaoq.net 可按 Ctrl + D 进行收藏

koa 简介

koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。

闲谈 Node.js 的 Koa 框架和 Express 框架

koa2 完全抛弃了 generator 和 co 的做法,而是使用 async/await 来做异步开发。

koa 和 express 的不同点

  • koa 和 express 在表现上的一点不同是采用 ctx 一个参数来调用中间件,而不是 express 的 req, res。
  • 然后是在中间件连接的方式上有所不同。express 的设计是串联的,设计思路超级简洁。koa 的某一个中间件可以自行选择之后中间件的执行位置的。

实例比较

比如一个服务器处理时间/日志的中间件的开发:

express的做法

request 进来,记录时间到 request._startTime 上。绑定一个函数到 response 的’end’,’finish’以及 response.socket 的’error’,’close’事件上。那个函数会用当前时间和 startTime 做差,算出运行时间。

koa2 的实现代码

 const xTime = async (ctx,next)=>{    
 let start = new Date    
 await next()    
 ctx.set('X-Response-Time', (new Date) - start) + 'ms') }

这是在功能开发上,在错误处理上的友好度就更高了。
没有特意抹黑 express 的中间件开发,那个 express 版的计时器是 express 自带的服务器日志中间件 morgan 的实现。

社区方面

express 的社区还是大。koa 本来就小,还被从 koa1 转 koa2 一折腾,就更小了。而现在 koa2 还在 alpha 版,koa 及其插件的开发速度比较没有保证。你找到一个中间件,如果是 express 的,得转过来。如果是 koa 的,一般也得再转一次。比如我使用的 passportjs,github 有 koa 版 koa-passport,就分 koa1 版本和 koa2 版本的,选择时得注意一下。

闲谈 Node.js 的 Koa 框架和 Express 框架

koa2 好用,设计上的确有优势。优势不在能实现更强的功能,而是可以更简单地完成功能。koa2 社区远不如 express,原因之一是~~因为 koa2 的正式版离发行估计还得 3~6 个月。~~koa 的正式版是 koa1。koa1 在思想上与 koa2 是一致的,但是 koa2 的实现更漂亮。有 koa1 到 koa2 的中间件封装函数`koa-convert`。而一般通用的中间件都有 koa 版,或者能够轻松的转为 koa 版。

Express 和 Koa 最明显的差别就是 Handler 的处理方法,一个是普通的回调函数,一个是利用生成器函数(Generator Function)来作为响应器。往里头儿说就是 Express 是在同一线程上完成当前进程的所有 HTTP 请求,而 Koa 利用 co 作为底层运行框架,利用 Generator 的特性,实现“协程响应”(并不能将 Generator 等价于协程,在 V8 的邮件列表中对 Generator 的定义基本是 `coroutine-like`),然而 co 这个库对 Generator 的使用方法并非当初 Generator 的设计初衷。

express 适合入门选手,koa 高不成低不就,学习一下其 mw 的设计即可。

有关 node.js 下 Koa 的学习有一个系列的学习教程,大家可以参考着以下资料,循序渐进地掌握Koa 框架知识。

1.NODE.JS KOA 框架 的基本用法

2.NODE.JS KOA 框架 的路由用法

3.NODE.JS KOA 框架 的中间件用法

4.NODE.JS KOA 框架 的 COOKIES、表单、文件上传功能详解

5.NODE.JS KOA 框架 的错误处理

6.闲谈 NODE.JS 的 KOA 框架和 EXPRESS 框架

7.NODE.JS 对接 HYBRID 框架 VASSONIC 教程

参考资料

【注:本文源自网络文章资源,由站长整理发布】


web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:闲谈 Node.js 的 Koa 框架和 Express 框架
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址