koa【10】 Koa2 session 的使用
const Koa = require("koa"); const router = require("koa-router")(); const render = require("koa-art-template"); const views = require("koa-views"); const static = require("koa-static"); const path = require("path"); const session = require("koa-session"); // 【步骤1:】 // 实例化Koa const app = new Koa(); // 静态web资源 中间件配置 app.use(static("static")); // session 中间件配置 【步骤2:】 app.keys = ["some secret hurr"]; const CONFIG = { key: "koa:sess", //cookie key (default is koa:sess) maxAge: 86400000, // cookie的过期时间 , 默认过期时间1天,单位毫秒,【需要修改】 overwrite: true, //是否可以overwrite (默认default true) ,设置没有效果,默认就行。 httpOnly: true, //cookie是否只有服务器端可以访问 httpOnly or not (default true) signed: true, //签名默认true rolling: false, //在每次请求时强行设置cookie,这将重置cookie过期时间(默认:false) renew: true, //(boolean) renew session when session is nearly expired,即将过期的时候才重新设置,默认是 false ,正藏情况下设置为 true 。 【需要修改】 }; app.use(session(CONFIG, app)); // 腾讯 koa-art-template 模板引擎配置 render(app, { root: path.join(__dirname, "view"), extname: ".html", debug: process.env.NODE_ENV !== "production", }); // 各个路由配置 router.get("/", async (ctx, next) => { let title = "这是首页"; ctx.session.username = "张三22"; //设置session 【步骤3:】 await ctx.render("index", { title }); }); router.get("/login", async (ctx) => { let title = "这是登录页面"; console.log(ctx.session.username); let username = ctx.session.username; // 获取session 【步骤4:】 await ctx.render("login", { title, username }); }); router.get("/news", async (ctx) => { let title = "这是新闻页面"; console.log(ctx.session.username); let username = ctx.session.username; await ctx.render("news", { title, username }); }); // 启动路由 app.use(router.routes()).use(router.allowedMethods()); // 监听端口(首页的地址) app.listen(3008); console.log("http://127.0.0.1:3008");