node基础:koa2和expres的区别是什么

express是一个基于node.js平台的极度简单灵活的web应用开发框架,主要是基于connect中间件,并且自己封装了路由、视图处理、等功能,使用人数众多。

koa相对来说更加年轻,是express原班人马基于es的新特性重新开发的一个新的框架,主要基于co中间件,基于es6 generator特性的异步流程控制,解决了回掉地狱问题和麻烦的错误处理,问题框架自生不包含任何的中间件,很多功能都需要借助第三方中间件来解决,koa2是koa的2.0版本,使用async/await来实现的异步流程控制。

koa和express的主要区别:

1、express自身集成了路由视图处理等功能,koa本身不集成任何的中间件,需要配置路由视图等中间件进行开发;

2、异步流程的控制:express多采用的是callback的方式来处理异步,koa v1是采用generator,koa2则采用的是async/await,generator和async/await使用同步的方法来处理异步,明显要好于callback和promise,而async/await在语义上又比generator要好很多;

3、中间件模型:express基于connect中间件,线性模型,koa中间件采用的是洋葱模型,所有的请求在经过中间件的时候都会执行俩次,能够非常方便的后置一些处理逻辑;

4、context:和express只有request和response俩个对象不同,koa增加了一个context的对象,作为这次请求的上下文对象(在koa1中为中间件的this,在koa2中作为中间件的第一个参数传入),同时,context上也挂在了request和response俩个对象,和express类似,这俩个对象提供了大量的边界方法辅助开发。

你可能感兴趣的:(node,nodejs,javascript,es6)