美文网首页
koa知识点整理

koa知识点整理

作者: 龚达耶 | 来源:发表于2019-04-05 17:16 被阅读0次
  • 什么是Koa?

Koa是基于Node.js的web框架,现在大家使用的版本是koa2。其特点是对异步处理变简单,使用async和Promise,避免回调地狱。

  • 什么是Context对象?

Koa将Node.js的Request和Response对象封装到Context对象中,所以Context对象成为一次对话的上下文,通过加工就可以控制返回给用户的内容。

  • 使用过的Koa中间件

Koa就是包含一组中间件的函数对象

https://www.jianshu.com/p/0790efc02c22

  • Koa-body原理

koa-body就是结合了koa-bodyparse和koa-multer

可以把POST的参数解析到ctx.request.body中

支持文件上传并限制大小

  • 与Express的对比

Express的中间件更多,但是Express采用ES5的语法所以容易造成回调地狱,Koa2使用ES67 Promise/Async,可读性更好更简单。并且Koa2几乎所有的功能都需要由第三方中间件完成

  • Koa中间件概念

中间件函数就是带有ctx和next的函数,ctx就是封装了response和request,next用于将执行权交给下游的中间件.在next()之前使用awiat关键字因为next()会返回promise对象,在中间件中位于next()之后的会暂停执行,直到最后一个中间件执行完毕,再自下而上执行next()之后的函数,先进后出。

  • 使用Koa写出简易路由

不使用koa-router

const koa = require('koa');
const app = new koa();
app.use(async (ctx, next) => {
    const {url, method} = ctx;
    if(url === '/404' && method === 'GET'){
        ctx.body = 'Not Found'
        ctx.status = 404;
    } else {
        ctx.body = 'Default Content'
    }
    await next();
})
app.listen(3000)

使用koa-router

const koa = require('koa');
const app = new koa();
const bodyparser = require('koa-bodyparser')
const Router = require('koa-router')
const router = new Router() // 初始化router
app.use(bodyparser({
  enableTypes:['json', 'form', 'text']
}))

app.use(require('koa-static')(__dirname + '/public'))
app.use(router.routes()) // 加载router中间件
app.use(router.allowedMethods()) //对异常码处理


router.get('/', async (ctx, next) => {
  ctx.render('index')
})

router.post('/test1', async (ctx, next)=>{
  let retunData = ctx.request.body
  console.log(ctx.request.body)
  ctx.body = retunData
})

相关文章

  • koa知识点整理

    什么是Koa? Koa是基于Node.js的web框架,现在大家使用的版本是koa2。其特点是对异步处理变简单,使...

  • Koa2+Nunjucks的实例介绍

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

  • koa知识点

    准备做一个给狗狗配音的APP,前端用react native,后台服务器用node.js+koa+mongo数据库...

  • koa2 用到的中间件

    koa-router //koa路由 koa-bodyparser //post 获取值 koa-stat...

  • koa-router处理URL

    koa-router处理URL koa-router使用的结构const Koa = require('koa')...

  • koa 自学入门

    const Koa = require('koa');const route = require('koa-rou...

  • 初见 Koa 2

    koa 和 koa 2 最大的不同是koa 2 支持 async/await。koa 通过结合 generato...

  • trello01:后端搭建

    开发依赖: koa : 后端的主框架。 koa-router:基于Koa的路由。 koa-static-cache...

  • Koa2教程(常用中间件篇)

    目录一、koa-bodyparser二、koa-router三、koa-views + ejs四、koa-stat...

  • koa2设置跨域

    npm install --save koa2-corsvar Koa = require('koa');var ...

网友评论

      本文标题:koa知识点整理

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