当前位置: 首页 > 后端技术 > Node.js

Node.js进阶基础技巧——Koa的基本使用

时间:2023-04-03 17:56:01 Node.js

一、简介Koa由Express原班人马打造,致力于成为更小、表现力更强、更健壮的Web框架。使用koa编写web应用,通过组合不同的生成器,可以避免回调函数的重复繁琐嵌套,大大提高错误处理的效率。Koa在内核方法中没有绑定任何中间件,它只提供了一个轻量级优雅的函数库,使得编写Web应用得心应手。2、安装Koa需要nodev7.6.0及以上版本支持ES2015。您可以通过异步方法安装您支持的节点版本。$nvminstall7$npmikoa$nodemy-koa-app.js3.babel异步函数在node<7.6版本中使用异步函数,我们推荐使用babel的requirehook.require('babel-core/register');//require在hookconstapp=require('./app')之后需要转译的应用程序的其余部分;为了解析和翻译异步函数,你应该至少有transform-async-to-generator或transform-async-to-module-method这两个插件。例如,在你的.babelrc文件中,你应该有以下代码{"plugins":["transform-async-to-generator"]}你也可以使用envpreset并设置"node":"current"代替。4.应用Koa应用是一个包含一组中间件功能的对象,它以类似栈的方式组织和执行。Koa类似于你可能遇到的许多其他中间件系统,例如Ruby的Rack、Connect等。但是,一个关键的设计点是在其低级中间件层提供高级“语法糖”。这提高了互操作性、健壮性,并使编写中间件更加愉快。这包括常见任务的方法,例如内容协商、缓存清理、代理支持和重定向。尽管提供了很多有用的方法,但Koa仍然保持较小的体积,因为没有捆绑中间件。必修的helloworldapp:5.CascadingKoamiddleware以比较传统的方式级联,你可能习惯使用类似的工具——之前很难方便用户使用node的回调。然而,使用异步函数,我们可以实现“真正的”中间件。与Connect的实现直接通过一系列函数传递控制直到一个函数返回相反,Koa调用“下游”,然后控制流回“上游”。以“HelloWorld”响应为例,首先请求流经过x-response-time和logging中间件询问何时开始,然后继续将控制权交给响应中间件。当中间件调用next()时,该函数暂停并将控制权传递给下一个定义的中间件。当下游不再有中间件执行时,堆栈展开,每个中间件恢复执行其上游行为。6.设置应用程序设置是应用程序实例上的属性,目前支持如下:·app.env默认为NODE_ENV或“开发”·app.proxy当真正的代理头字段将被信任时·app.subdomainOffset对于那些被忽略.subdomainsoffset[2]·app.contextapp.context是创建ctx的原型。您可以通过编辑app.context向ctx添加其他属性。这对于将ctx添加到整个应用程序中使用的属性或方法很有用,这可能更高效(不需要中间件)和/或更简单(更少的require()s)并且更多地依赖ctx,这可以被认为是一种反模式.例如,要从ctx添加对数据库的引用:注意:ctx上的许多属性是使用getter、setter和Object.defineProperty()定义的。您只能通过在app.context上使用Object.defineProperty()来编辑这些属性(不推荐)。查看https://github.com/koajs/koa/...安装的应用程序当前使用其父级的ctx和设置。因此,安装的应用只是一套中间件。7.最后,Koa是基于Node.js的下一代Web框架,由Express团队打造,具有:优雅、简单、灵活、体积小的特点。几乎所有的功能都需要通过中间件来实现。