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>

 

posted on 2021-06-25 21:56  李起桉  阅读(113)  评论(0编辑  收藏  举报