koa

1.koa是一个基于nodeJs的web框架,其由express原班人马打造 主要针对于api开发,通过利用es6中的async函数,让你丢掉回调函数的,并且增强了错误处理,koa没有任何中间键的参与,只是让您更快的编写服务器应用程序。

2.使用bable实现async函数,要想编译async方法你至少应该有 transform-async-to-generator和transform-async-to-module-method插件

	./babelrc
	 {
	    "plugin":["transform-async-to-generator"],
	  }

3.koa应用程序是一组包含中间件函数的对象,它按照堆栈的方式执行。

	 例子:
	 cons Koa=require("koa")
	 const app=new Koa();
	app.use(async ctx=>{
	 ctx.body="hello ,word"
	})
	app.listen(3000)

4.koa调用下游,然后控制返回上游,叫级联,使用async方法能实现真实的中间件当一个中间件调用 next() 则该函数暂停并将控制传递给定义的下一个中间件。当在下游没有更多的中间件执行后,堆栈将展开并且每个中间件恢复执行其上游行为。

5.设置

	(1) app.env 默认是node-env或者development
	(2)app.proxy当真正的代理头字段被信任
	(3)app.subdomainOffset 对于要忽略的 .subdomains 偏移[2]
  1. (1)app.listen(…)

const Koa=require(“koa”) const app=new Koa(); app.listen(300)<=>const
http=require(“http”)
app.createServer(app.callback()).listen(3000)
(2)app.use(function())将给定的中间件方应用程序法添加到 (3)app.callback()用来处理请求的
(4)app.keys=设置签名的cookies密匙
(5)app.context是其ctx的原型,通过编辑app.content为ctx添加属性,tx 上的许多属性都是使用 getter
,setter 和 Object.defineProperty() 定义的。你只能通过在 app.context 上使用
Object.defineProperty() 来编辑这些属性

7错误处理

  默认情况下是将所有的错误都输出到stderr,除非app.slient为true,要执行自定义错误处理逻辑,如集中式日志记录,您可以添加一个 “error” 事件侦听器:
   app.on(err,err=>{
           log.error("errlog",err)
   })
如果 req/res 期间出现错误,并且 _无法_ 响应客户端,Context实例仍然被传递:
app.on('error', (err, ctx) => {
  log.error('server error', err, ctx)
});

8.上下文(Content)ctx封装了两个对象一个是request一个是response对象

API
1.ctx.req node的req对象
2.ctx.res 避免使用下列属性 node 的res对象
res.statusCode
res.writeHead()
res.write()
res.end()  
3.ctx.request koa的request对象
4.ctx.response koa的response对象
5.ctx.state指定命名空间通过中间件传递信息和前端视图
 ctx.state.app=await User.find(id)
6.ctx.app应用程序
7.ctx.cookies.get(name,[options])
通过 options 获取 cookie name:
signed 所请求的cookie应该被签名
8.ctx.cookies.set(name, value, [options])
   过 options 设置 cookie name 的 value :
maxAge 一个数字表示从 Date.now() 得到的毫秒数
signed cookie 签名值
expires cookie 过期的 Date
path cookie 路径, 默认是'/'
domain cookie 域名
secure 安全 cookie
httpOnly 服务器可访问 cookie, 默认是 true
overwrite 一个布尔值,表示是否覆盖以前设置的同名的 cookie (默认是 false). 如果是 true, 在同一个请求中设置相同名称的所有 Cookie(不管路径或域)是否在设置此Cookie 时从 Set-Cookie 标头中过滤掉。
9.ctx.throw([status], [msg], [properties])
  ctx.throw(400, 'name required', { user: user });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Koa Router是一个用于处理路由的中间件,它是基于Koa框架的一个插件。它提供了一种简洁的方式来定义和处理路由,使得在Koa应用中管理和处理不同的请求变得更加容易。 使用Koa Router,你可以通过定义路由和相应的处理函数来实现不同URL路径的映射。它支持常见的HTTP方法,如GET、POST、PUT、DELETE等,并且可以处理动态路由和参数。 以下是Koa Router的一些主要特性和用法: 1. 定义路由:你可以使用Koa Router的`router.get()`、`router.post()`等方法来定义不同HTTP方法的路由。例如,`router.get('/users', getUsers)`表示处理GET请求的/users路径。 2. 处理函数:你可以为每个路由定义一个处理函数,用于处理请求并返响应。处理函数可以是一个普通的异步函数,也可以是一个Koa中间件。 3. 动态路由:Koa Router支持动态路由,你可以在路由路径中使用参数来匹配不同的URL。例如,`router.get('/users/:id', getUserById)`表示匹配/users/后面的任意字符串,并将其作为参数传递给getUserById函数。 4. 路由嵌套:你可以使用Koa Router实现路由的嵌套,将相关的路由组织在一起。这样可以更好地组织和管理路由,提高代码的可读性和可维护性。 5. 中间件支持:Koa Router本身也是一个Koa中间件,你可以将其作为其他中间件的一部分来使用。这样可以在路由处理之前或之后执行一些额外的逻辑,如身份验证、错误处理等。 总的来说,Koa Router提供了一种简单而灵活的方式来处理路由,使得构建和管理Koa应用的路由变得更加方便和可扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值