1,首先确保你安装了 node 环境
2,新建一个 webpack 项目,并安装 koa 模块
$ npm init
// 之后一直回车即可
$ npm install koa --save
3,新建一个 app.js,用来实现一个简单的 HTTP 服务
let Koa = require('koa')
let app = new Koa()
app.listen(3000)
console.log('server running at http://localtion:3000')
此时访问 localhost:3000,页面会显示 “Not Found”,这是因为我们并没有返回内容
4,Context 对象
Koa 提供了一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。
const Koa = require('koa')
const app = new Koa()
const main = ctx => {
// 发送给用户的内容
ctx.response.body = 'Hello World'
}
app.use(main)
app.listen(3000)
console.log('server running at localhost:3000')
此时页面上会显示 “Hello World”
ctx.response 代表 HTTP Response。同样的 ctx.request 代表 HTTP Request
5,HTTP Response 的类型
Koa 默认返回的类型是 【text/plain】,如果想返回其他类型的内容,可以使用【ctx.request.accepts】判断,然后使用 【ctx.response.type】制定返回的内容。
【xml、html、json、text】
const main = ctx => {
if(ctx.request.accepts('xml')){
ctx.response.type = 'xml'
ctx.response.body = '<data>Hello World</data>'
} else if (ctx.request.accepts('html')) {
ctx.response.type = 'html'
ctx.response.body = '<p>Hello World</p>'
} else if (ctx.request.accepts('json')) {
ctx.response.type = 'json'
ctx.response.body = { data: 'Hello World' }
} else if (ctx.request.accets('text')) {
ctx.response.type = 'text'
ctx.response.body = 'Hello World'
}
}
6,网页模板
实际开发中,返回给用户的网页往往都写成了模板文件。我们可以让 Koa 先读取模板文件,然后将这个模板返回给用户。
const fs = require('fs')
const main = ctx => {
ctx.response.type = 'html'
ctx.response.body = fs.createReadStream('./demo/template.html')
}