koa get/post请求
//index.js
const app = new Koa()
const bodyparser = require('koa-bodyparser')//post
const json = require('koa-json')//get
// middlewares---post
app.use(bodyparser({
enableTypes:['json', 'form', 'text']
}))
// middlewares---
app.use(json())
router.js
const router=require('koa-router')()
//get
router.get('/list', async function (ctx, next) {
let author = ctx.query.author || ''
const keyword = ctx.query.keyword || ''
})
ctx.body = {
title: 'koa2 json'
}
})
//post
router.prefix('/api/user')
router.post('/login', async function(ctx,next){
const { username, password }=ctx.request.body
ctx.body ={
errno: 0,
username,
password
})
module.exports=router
中间件
形式:app.use()
session
使用:koa-generic-session和koa-redis
- sessionID存入到cookie中默认格式为:"koa:session":sessionID
- 通过中间件ctx.session.** 往当前redis缓存的sessionID到存入缓存内容,比如写username/realname
- req.session.viewNum=0
- req.session.username = data.username
- req.session.realname = data.realname
const Koa = require('koa');
const app = new Koa();
const session = require('koa-generic-session')
const redisStore = require('koa-redis')
app.keys = ['WJiol#23123_']; //session的密码
//sessionID存入到cookie中格式为:"koa:session":sessionID
//通过中间件ctx.session.** 往redis缓存到写入内容,比如写username/realname
// -req.session.username = data.username
// -req.session.realname = data.realname
app.use(session({
// key: 'session-blog.sid', //浏览器 cookie 的名字
// prefix: 'session-blog:sess:', //redis key 的前缀
cookie: {
path: '/',
httpOnly: true,
maxAge: 24 * 60 * 60 * 1000
},
store: redisStore({ //redis的储存
all: '127.0.0.1:6379'
})
}))
//ctx.session.** 往redis缓存到写入内容
//一个简单的计数器返回,访问 http://localhost:3000 每次数字都会 +1
app.use(async (ctx, next) => {
const session = ctx.session
if (session.viewNum == null) {
session.viewNum = 0
}
session.viewNum++
res.json({
viewNum: session.viewNum
})
})
app.listen(3000);