You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constKoa=require('koa')newKoa().use((ctx)=>{ctx.body='Hello Koa'}).listen(9000,()=>console.log('listening on 9000'))
koa的主要知识点是其中间件的执行顺序
constKoa=require('koa');newKoa().use(asyncfunction(ctx,next){console.log('1')awaitnext()console.log('1')}).use(asyncfunction(ctx,next){console.log('2')awaitnext()console.log('2')}).use(asyncfunction(ctx,next){console.log('3')awaitnext()console.log('3')}).listen(9000,()=>console.log('listening on 9000'))
http 内置模块
Node.js 内置模块 http 用于快速创建 HTTP 服务器
以上代码表示启动一个HTTP服务器,监听9000端口,在收到任何请求时返回字符'OK',响应状态码默认返回200。
响应头非常简单没有足够的信息,浏览器会采用默认的方式展示字符'OK'为网页。
要实现更多功能,就需要开发者根据HTTP协议返回有效信息,浏览器按协议解析信息以正确处理响应内容。
实现HTTP协议上的更多内容,过程中往往有很多常见的、通用的代码,有许多第三方库将这些代码进行封装,使用第三方库能大大简化HTTP服务的开发过程。
express
express 为用户提供全面、快捷的功能封装
express 的基本功能是启动HTTP服务,并提供路由功能、对HTTP协议的封装方法。更多功能则通过内置或外部中间件提供。
路由
中间件
分为内置中间件(无需手动导入),外置中间件(需安装中间件依赖)
使用内置中间件
express.static
启动静态资源服务使用外置中间件
cookie-parser
解析Cookie标头为键值对koa
koa 也是 express 团队开发的,主要区别在于API风格变化。
koa 是一个中间件框架,只有所有 HTTP 服务器通用的方法才会直接集成进框架代码中,其余部分由中间件实现。
使用koa实现HTTP服务
koa的主要知识点是其中间件的执行顺序
上述中间件在请求到来时,打印顺序为123321。
形式类似于浏览器中的事件监听的捕获与冒泡:中间件函数代码以
await next()
分界,前为捕获,后为冒泡。fastify
fastify 是一个类似 express 的HTTP服务框架,它的主要特点是在基准测试中领先于测试竞品,比
http
内置模块还快。nestjs
nestjs 被称为 Node.js 版的 spring。
Nest 提供了一个开箱即用的应用程序架构,允许开发人员和团队创建高度可测试、可扩展、松散耦合且易于维护的应用程序。该建筑深受Angular的启发。
Nest 底层HTTP框架默认采用 express,也提供了适配器切换为 fastify。
“开箱即用的应用程序架构”就是使用代码模板创建目录结构,提供装饰器来实现类似 Java spring 的编程风格。
参考资料
The text was updated successfully, but these errors were encountered: