一、基本用法
Koa 就是一种简单好用的 Web 框架。它的特点是优雅、简洁、表达力强、自由度高
1.1 架设 HTTP 服务
只要三行代码,就可以用
Koa
架设一个HTTP
服务。
const Koa = require('koa'); const app = new Koa(); app.listen(3000); |
打开浏览器,访问
http://127.0.0.1:3000
。你会看到页面显示”Not Found”,表示没有发现任何内容。这是因为我们并没有告诉Koa
应该显示什么内容
通过脚手架构建服务
npm install koa-generator -g |
创建一个项目
koa2 -e hello-koa2
-e
表示ejs
语法,不写则是jade
语法
打开浏览器,访问
http://127.0.0.1:3000
1.2 Context 对象
Koa
提供一个Context
对象,表示一次对话的上下文(包括HTTP
请求和HTTP
回复)。通过加工这个对象,就可以控制返回给用户的内容
Context.response.body
属性就是发送给用户的内容
const Koa = require("koa"); const app = new Koa(); app.use(ctx => { //处理请求的中间件 ctx.response.body = "hello world"; }).listen(3000); |
上面代码中,
main
函数用来设置ctx.response.body
。然后,使用app.use
方法加载main
函数
ctx.response
代表HTTP Response
。同样地,ctx.request
代表HTTP Request
1.3 HTTP Response 的类型
Koa
默认的返回类型是text/plain
,如果想返回其他类型的内容,可以先用ctx.request.accepts
判断一下,客户端希望接受什么数据(根据HTTP Request
的Accept字段),然后使用ctx.response.type
指定返回类型
const Koa = require("koa"); const app = new Koa(); app.use(ctx => { if (ctx.request.accepts('xml')) { ctx.response.type = 'xml'; ctx.response.body = '<data>Hello World</data>'; } else if (ctx.request.accepts('json')) { ctx.response.type = 'json'; ctx.response.body = { data: 'Hello World' }; } else if (ctx.request.accepts('html')) { ctx.response.type = 'html'; ctx.response.body = '<p>Hello World</p>'; } else { c |