1、app.js
var Koa = require('koa') router = require('koa-router')() render = require('koa-art-template') path = require('path') session = require('koa-session') app = new Koa() //配置cookie的中间件 render(app, { root: path.join(__dirname, 'views'), //视图的位置 extname: '.html', //后缀名 debug: process.env.NODE_ENV !=='production' //是否开启调试模式 }) //配置session的中间件 app.keys = ['some secret hurr']; //cookie的签名 const CONFIG = { key: 'koa.sess', maxAge: 5000, //需要修改 overwrite: true, //默认 httpOnly: true, //true表示只有服务器端可以获取 signed: true, //签名 rolling: false, //每次请求时强行设置cookie,这将重置cookie过期时间 renew: true, //需要修改true }; app.use(session(CONFIG, app)); router.get('/', async (ctx)=>{ //获取session console.log(ctx.session.userinfo) let list = { name: 'lee', } await ctx.render('index',{ list: list }) }) router.get('/login', async (ctx)=>{ //设置session ctx.session.userinfo = 'lee' ctx.body = '登录成功' }) router.get('/news', async (ctx)=>{ //获取session console.log(ctx.session.userinfo) let list = { name: 'qian', } await ctx.render('news',{ list: list }) }) app.use(router.routes()) //启动路由 app.use(router.allowedMethods()) app.listen(3000)
2、index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="css/basic.css"/> <script> // httpOnly:true 客户端拿不到cookies //console.log(document.cookie) </script> </head> <body> <h2 class="header">这是一个主页面</h2> {{list.name}} <!--art-template语法 --> </hr> </body> </html>