koa中的cookie使用
2019-11-21 本文已影响0人
Wrestle_Mania
- 基础用法
const Koa = require("koa");
const path = require("path");
const Router = require("koa-router");
const render = require("koa-art-template");
const app = new Koa();
const router = new Router();
render(app, {
root: path.join(__dirname, "views"),
extname: ".html",
debug: true
});
router.get("/", async (ctx, next) => {
ctx.cookies.set("userinfo", "JonSnow", {
maxAge: 10 * 1000
});
await ctx.render("index");
});
router.get("/news", async (ctx, next) => {
const userinfo = ctx.cookies.get("userinfo");
await ctx.render("news", {
name: "JonSnow",
userinfo
});
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(8080);
有一个问题,无法存储中文,可通过Buffer将汉字转换为base64进行存储
options 名称 | options 值 |
---|---|
maxAge | 一个数字表示从 Date.now() 得到的毫秒数 |
expires | cookie 过期的 Date |
path | cookie 路径, 默认是'/' |
domain | cookie 域名 |
secure | 安全 cookie 默认 false,设置成 true 表示 只有 https 可以访问 |
httpOnly | 是否只是服务器可访问 cookie, 默认是 true |
overwrite | 一个布尔值,表示是否覆盖以前设置的同名 的 cookie (默认是 false). 如果是 true, 在同 一个请求中设置相同名称的所有 Cookie(不 管路径或域)是否在设置此 Cookie 时从 Set-Cookie 标头中过滤掉。 |