Koa中处理cookie不需要引入其他模块, 只要拿到ctx对象就可以操作cookie
参考文档: demopark.github.io/koa-docs-Zh…
废物不多说,直接上代码
const Koa = require("koa");
const Router = require("koa-router");
const app = new Koa();
const router = new Router();
const bodyParser = require("koa-bodyparser");
app.use(bodyParser());
router.get("/setCookie", (ctx, next) => {
/*
第一个参数: 设置cookie的key
第二个参数: 设置cookie的value
第三个参数: 回调参数
*/
ctx.cookies.set("name", "sandy", {
path: "/", // 有效范围
httpOnly: true, // 只能在服务器修改
maxAge: 24 * 60 * 60 * 1000,
});
});
router.get("/getCookie", (ctx, next) => {
console.log(ctx.cookies.get("name"));
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(999);
效果图
默认情况下Koa中的cookie是不能设置中文的
但是如果还是想要设置中文的cookie还是有办法的
const Koa = require("koa");
const Router = require("koa-router");
const app = new Koa();
const router = new Router();
const bodyParser = require("koa-bodyparser");
app.use(bodyParser());
router.get("/setCookie", (ctx, next) => {
let value = new Buffer("仙蒂").toString("base64");
ctx.cookies.set("userName", value, {
path: "/",
httpOnly: true,
maxAge: 24 * 60 * 60 * 1000,
});
});
router.get("/getCookie", (ctx, next) => {
let value = ctx.cookies.get("userName");
let res = new Buffer(value, "base64").toString();
console.log(res);
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(999);
效果图