koa-cookies
一、认识
koa-cookies
是一个 Koa
中间件,用于处理 HTTP
请求和响应中的 cookies
。它提供了一种简便的方法来读取、设置和删除 cookies
,从而简化了 cookie
的管理。
二、API
2.1 ctx.cookies.get(name)
ctx.cookies.get(name)
: 获取指定名称的 cookie
。
2.2 ctx.cookies.set(name, value, options)
ctx.cookies.set(name, value, options)
: 设置一个新的 cookie
,可以指定多个选项(如过期时间、路径、域名等)。
在设置 cookies
时,可以使用以下选项:
-
maxAge
: 指定cookie
的有效时间(以毫秒为单位)。 -
expires
: 指定cookie
的过期时间(Date 对象)。 -
path
: 指定cookie
的路径,只有在该路径下的请求才能访问该cookie
。 -
domain
: 指定cookie
的域,默认为当前域。 -
httpOnly
: 如果为true
,则客户端JavaScript
无法访问该cookie
,提高安全性。
2.3 ctx.cookies.set(name, null)
ctx.cookies.set(name, null)
: 删除指定名称的 cookie
。
三、语法
const Koa = require('koa');
const KoaCookies = require('koa-cookies');
const app = new Koa();
// 使用 koa-cookies 中间件
app.use(KoaCookies());
// 处理请求
app.use(async (ctx) => {
// 读取 cookie
const visitCount = ctx.cookies.get('visitCount') || 0;
// 设置 cookie
ctx.cookies.set('visitCount', parseInt(visitCount) + 1, {
httpOnly: true, // 只在 HTTP 请求中可访问
maxAge: 24 * 60 * 60 * 1000, // 过期时间:24小时
});
ctx.body = `You have visited this page ${ctx.cookies.get('visitCount')} times.`;
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});