koa2实战学习(一)---koa介绍+ctx介绍

Koa介绍

koa是node.js的web框架,koa的前辈是express。koa也是由express的原班人马打造

为什么选择koa2?

  1. Express主要采用ES5的语法,异步操作通过回调函数处理,因此会出现‘回调地狱’。
  2. koa采用ES6的Generator函数+yield语句+Promise语句来处理异步操作。
  3. koa2采用ES7中的async/await+Promise来处理异步操作。async/await是专门为异步操作设计的基于Generator函数的语法糖,内置了执行器,不仅代码可读性强,而且ES支持原生的async/await。

Koa项目初始化

  1. npm init
  2. console.log(‘hello world’)
  3. node app.js 若运行没问题,则代表环境正常
  4. npm install koa -S 安装koa

代码示例:

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

app.listen(3000, () => {
    console.log('server is listening at http://localhost:3000');
})

浏览器输入:http://localhost:3000

Context对象常用的属性和方法

ctx.request

  1. ctx.request.url
  2. ctx.request.query
  3. ctx.request.querystring
  4. ctx.request.method
  5. ctx.request.path
  6. ctx.request.on(‘data’, func)
  7. ctx.request.accepts()

代码示例:

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

app.use(async ctx => {
    ctx.response.body = {
        url: ctx.request.url,
        query: ctx.request.query,
        querystring: ctx.request.querystring
    }
})

app.listen(3000, () => {
    console.log('server is listening at http://localhost:3000');
})

浏览器输入:http://localhost:3000/?search=koa&keywords=context

ctx.response

  1. ctx.response.body
  2. ctx.response.status
  3. ctx.response.type
  4. ctx.response.redirect(url, [alt])

ctx.state

ctx.state是推荐的命名空间,通过中间件传递信息和前端视图
例:ctx.state.user = yield User.find(id) 把user属性存放到ctx.state对象里,以便能被另外一个中间件读取。

ctx.cookies

例:
ctx.cookies.set(name, value, [options]);
ctx.cookies.get(name, [options]);
koa2实战学习(一)---koa介绍+ctx介绍_第1张图片

ctx.throw

ctx.throw(500) 用于抛出错误,把错误信息返回给用户。

你可能感兴趣的:(koa)