Koa入门

作者: 忽如寄 | 来源:发表于2017-04-18 00:51 被阅读798次

Koa框架由Express的原班人马打造,主要是通过组合不同的generator来避免重复繁琐的回调函数嵌套。

安装方法如下

npm install koa -g

一个简单的koa应用

const koa = require('koa');
const app = new koa();

app.use(ctx => {
  ctx.body = 'hello world';
});

app.listen(3000);

启动应用就可以在本地的3000端口看到一个最简单的web应用。

常用方法

app.listen():启动一个服务的快捷方法,其实是作为原生http.createServer()方法的简单封装,实际上运行如下:

const http = require('http');
const koa = require('koa');
const app = koa();

http.createServer(app.callback()).listen(3000);

当然你可以一次启动多个服务。

app.use(function):将给定的函数作为中间件加载

Koa将req和res对象封装成了一个ctx上下文对象,可以通过ctx.request和ctx.response对象访问相应的方法和属性,如下:

ctx.request ctx.response

ctx上下文对象中的api:
ctx.req:node.js中的request对象
ctx.res:node.js中的response对象
ctx.app:app实例
ctx.state:命名空间
ctx.cookies.get(name,[options]):返回相应的cookie
ctx.cookies.set(name,value,[options]):设置新的cookie,相应的option参数有:

{
  signed: Boolean,
  expires: Date,
  path: String,默认为'/',
  domain: String,
  secure: Boolean,
  httpOnly: Boolean,默认为true
}

ctx.throw(msg, [status]):抛出错误的辅助方法,默认status为500
ctx.assert(value, [msg], [status], [properties]):用来断言的辅助方法

Request对象API

req.header:返回请求头
req.method:返回请求方法
req.method=:设置
req.length:返回conten-length
req.url:返回请求url
req.url=:设置
req.path:返回path
req.path=:设置
req.querystring:返回查询字符串,去除头部的?
req.querystring=:设置
req.search:返回查询字符串,包含?
req.search=:设置
req.host:返回主机名
req.type:返回content-type
req.query:返回经过解析的查询字符串,就是一个对象,类似于Express的req.query,不存在返回空对象
req.query=:设置
req.fresh:检查客户端请求的缓存是否最新,当缓存为最新时,可编写业务逻辑返回304
req.stale:与rea.fresh相反
req.protocol:返回请求协议名
req.secure:判断协议是否为https
req.ip:返回请求IP
req.ips:返回请求IP列表
req.subdomains:返回子域名数组,如当请求域名为 "tobi.ferrets.example.com" 时候,返回 ["ferrets", "tobi"]
req.is(type):判断请求对象中的content-type是否为给定type的快捷方法
req.accepts(type):判断请求对象中 Accept 是否为给定 type 的快捷方法,当匹配到符合的类型时,返回最匹配的类型,否则返回 false
req.acceptsEncodings(encodings):判断客户端是否接受给定的编码方式的快捷方法
req.acceptsCharsets(charsets):同req.acceptsEncodings(encodings)
req.acceptsLanguages(langs):同req.acceptsEncodings(encodings)

Response对象的API

res.header:获取返回头
res.status:获取返回的HTTP状态码
res.status=:设置
res.length:返回content-length属性
res.length=:设置
res.body:获取响应体
res.body=:设置
res.get(field):获取相应的返回头属性
res.set(field, value):设置
set.set(fields):一次设置多个,参数为对象
res.remove(fields):删除指定的返回头属性
res.type:获取返回的content-type
res.type=:设置
res.redirect(url,[alt]):重定向,可以使用关键字back返回上一个页面(refer),没有refer时,返回/
res.attachment:返回熟悉 Content-Disposition 为 "attachment",并告知客户端进行下载。
res.headerSent:判断一个响应头是否已经发送到客户端,通常用来检测客户端是否收到了错误信息。
res.lastModified:返回last-modified属性
res.lastModified=:设置
res.etag=:设置etag

相关文章

  • koa2入门系列

    koa2入门系列(一) koa2入门系列(二) koa2入门系列(三) koa2入门系列(四) koa2入门系列(...

  • Koa2 入门 Koa-body Koa-router

    Koa 入门 koa需要搭配中间件来做接口更方便,使用Koa-body & Koa-router 首先使用npm下...

  • 关于Node框架选择

    1.WEB框架演进 Express --> Koa --> Koa2 2. Node 调试工具入门教程 http:...

  • Koa2+Nunjucks的实例介绍

    知识准备 koa入门: koa2使用的结构 什么是middleware? middleware顺序的重要性 整理笔...

  • koa2入门

    【链接】koa入门https://www.liaoxuefeng.com/wiki/001434446689867...

  • koa 洋葱模型

    分析 1、首先这是koa2最简单的入门例子,我将通过这个入门例子来演示koa2的洋葱模型 在这里面,app首先是调...

  • Koa入门

    介绍 koa是一个相对于Express来说,体积更小,更富有表现力的Web框架。你可以选择(或者自己写一个)中间件...

  • koa入门

    koa介绍 Koa是由Express背后的团队创建的新流行的Web应用框架。它旨在成为Express的现代和极简主...

  • Koa入门

    Koa框架由Express的原班人马打造,主要是通过组合不同的generator来避免重复繁琐的回调函数嵌套。 安...

  • Koa入门

    介绍 koa是一个相对于express来说,体积更小,更富有表现力的Web框架。koa通过组合不同的generat...

网友评论

      本文标题:Koa入门

      本文链接:https://www.haomeiwen.com/subject/tzvxzttx.html