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