koa 和 express 区别

koa 和 express 区别

express: 在不断角逐中Express脱颖而出,Express–基于NodeJS平台,快速,开发,极简的web开发框架,这来自Express官方描述。Express包含application request response router 四大模块。Express在NodeJS的基础上完成二次抽象,封装处理细节向上提供丰富的模块方法以用来构建web应用,在此开发者只需通过这些功能方法开发中间件,扩展构建Web应用。作为两个框架中最早诞生者,经过长时间的发展完善,Express更为成熟,资料丰富。在node圈中如同Dom库中Jquery版的存在,但是如上表所示,Express基于Es5语法,通过回调组合逻辑(类比如同jQuery中的ajax方法),回调的硬伤在于不可组合,难以捕获,在复杂逻辑中会包含大量回调嵌套,也就是常说的回调地狱,以及调试问题。但Express也足以成为NodeJS框架中的经典,当下Es6,Es7盛行,可以通过相关三方库完善支持Promise或Async/Await来弥补。

var express = require('express')
var app = express()
app.get('/', function (req, res) {
  	res.send('Hello World!')
  	})
 var server = app.listen(3000, function () {
   	var host = server.address().address
   	var port = server.address().port	
   	console.log('Example app listening at http://%s:%s', host, port)
  })

koa: Koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 Koa 编写 web 应用,通过组合不同的 Generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。Koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。这来自Koa 官方描述 。Koa 中也包含4个主要模块,Application、Request、Response、Context。Koa 定位为基础框架,相比Express更加小巧,几乎所有功能都通过中间件来完成,相应的Router模块从核心模块中去除,需通过中间件的形式集成,Koa 中三方router模块近20余种,开发者可以根据需求选择需要的模块集成或封装自己的模块用于构建应用,非常灵活,在Koa 几乎没有任何限制去自由构建自己的应用,同时Koa 不断追随Esmascript规范,解决Express痛点,从一代generator函数到二代Async/Await,备受青睐。

const Koa=require('koa');
    const app=new Koa();
    app.use(async ctx =>{
        ctx.body='Hello'
    })
    app.listen(3000);

猜你喜欢

转载自blog.csdn.net/weixin_44260504/article/details/89883596