05-Koa-处理Cookie

1,141 阅读1分钟

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);

效果图