cookie 保存在浏览器客户端,可以让我们用同一个浏览器访问统一域名下的共享数据
(一)设置 cookie
ctx.cookies.set(key, value, options)
options:选择填写
httpOnly: false 客户端也可以访问
httpOnly: true,只有服务端可以访问
(二) 获取cookie
ctx.cookies.get(key)
完整例子代码:
const Koa = require('koa')
const app = new Koa()
const bodyparser = require('koa-bodyparser')
const Router = require('koa-router')
const router = new Router()
app.use(bodyparser())
// 设置 cookie
router.get('/submit', async (ctx) => {
let postObj = ctx.query
for (let key in postObj) {
ctx.cookies.set(key, postObj[key], {
expires: new Date('2020/10/10')
})
}
ctx.body = postObj
})
// 获取cookie
router.get('/getCookie', (ctx) => {
// 获取cookie
const name = ctx.cookies.get('name')
const age = ctx.cookies.get('age')
ctx.body = {
name,
age
}
})
app.use(router.routes())
app.listen(3000)
(三)在 koa 中无法设置 中文的cookie,往cookie里写中文会报错!
那么koa如何设置中文 cookie 呢?使用 Buffer 转一下 这个不是很常用~了解吧