koa

作者: 与你清欢_李 | 来源:发表于2019-07-12 16:12 被阅读0次

koa 学习

中间件

module.exports = async (ctx, next) => {
  console.log(`method:${ctx.method} host:${ctx.header.host} url: ${ctx.url}`)
  await next()
}

// 使用中间件
app.use(loggerAsync)

koa-router

  • koa-router
// router.js
const Router = require('koa-router')
const home = new Router()

home.get('/', async ctx => (ctx.body = `home get!`))
home.put('/', async ctx => (ctx.body = `home put!`))
home.post('/', async ctx => (ctx.body = `home post!`))

// datail 路由
const datail = new Router()

datail.get('/', async ctx => (ctx.body = `datail get!`))

module.exports = {
  home,
  datail,
}

// app.js
// 实例化 router 然后use 之前的router
const router = new Router()

router.use('/', home.routes(), home.allowedMethods())
router.use('/datail', datail.routes(), home.allowedMethods())

app.use(router.routes())

获取get/post请求参数

  • koa-bodyparser
// querystring 查询对象 序列化后
// query 查询对象
const {querystring, query} = ctx

// 获取POST参数
var bodyParser = require('koa-bodyparser')

app.use(bodyParser())

app.use(async ctx => {
  ctx.body = ctx.request.body
})

koa-static 静态资源

  • koa-static
const static = require('koa-static')
app.use(static(path.join(__dirname, './static/')))

cookie处理

// setcookie
ctx.cookies.set('token', 'hello world', {
  domain: 'localhost', // 写cookie所在的域名
  path: '/index', // 写cookie所在的路径
  maxAge: 10 * 60 * 1000, // cookie有效时长
  expires: new Date('2019-7-12'), // cookie失效时间
  httpOnly: false, // 是否只用于http请求中获取
  overwrite: false, // 是否允许重写
})
ctx.body = ctx.cookies.get('token')

VIEW处理

  • koa-views
  • ejs
const viewsMiddle = require('koa-views')

// views 模板 ejs
app.use(
  viewsMiddle(path.join(__dirname, './view'), {
    exension: 'ejs',
  })
)

 let content = '123'
  await ctx.render('index.ejs', {
    content,
  })

图片上传

mysql

  • mysql
const mysql = require('mysql')

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'koa_blog',
})

module.exports = async ctx => {
  const result = await new Promise((resolve, reject) => {
    connection.query('SELECT * FROM user', (err, result, fields) => {
      if (err) throw err
      resolve(result)
    })
  })
  const text = result.map(v=>`id:${v.id},name:${v.name}`)
  ctx.body = text
}

相关文章

  • 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

    koa 学习 中间件 koa-router koa-router 获取get/post请求参数 koa-bodyp...

  • koa2 入门教程

    koa koa 中文koa-generator 简介 koa 是一个新的 web 框架, 由 express 原班...

  • UMI 服务端渲染

    Umi 开启服务端渲染: 安装 koa、koa-compress、 koa-mount、koa-static、ko...

网友评论

      本文标题:koa

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