koa-cookie

1、app.js

var Koa = require('koa')
    router = require('koa-router')()
    render = require('koa-art-template')
    path = require('path')

app = new Koa()

render(app, {
    root: path.join(__dirname, 'views'),  //视图的位置
    extname: '.html',   //后缀名
    debug: process.env.NODE_ENV !=='production'  //是否开启调试模式
})

router.get('/', async (ctx)=>{
    //koa中无法设置中文的cookie,采用base64编码
    let username = Buffer.from('李起桉').toString('base64')    
    ctx.cookies.set('userinfo', username, {
        maxAge: 60*1000*60,
        //path: '/name', //配置可以访问的页面
        //domain: '.baidu.com',  //正常情况下不要设置,默认就是当前域下面的所有页面都可以访问
        //a.baidu.com和b.baidu.com共享cookie的数据
        //httpOnly: false,  //true表示cookie只有服务器端可以访问,false表示客户端(js)、服务器端都可以访问

    })

    let list = {
        name: 'lee'
    }
    await ctx.render('index',{
        list: list
    })
})
router.get('/news', async (ctx)=>{

    var data = ctx.cookies.get('userinfo')
    //koa无法转换成中文,采用base64编码
    var userinfo = Buffer.from(data, 'base64').toString()
    console.log(userinfo)
    let list = {
        name: 'qian',
    }
    await ctx.render('news',{
        list: list
    })
})

router.get('/shop', async (ctx)=>{
    var userinfo = ctx.cookies.get('userinfo')
    ctx.body = "这是一个商品页面,用户为:"+userinfo
})

app.use(router.routes())  //启动路由
app.use(router.allowedMethods()) 
app.listen(3000)

2、index.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>

 

上一篇:Windows环境Yapi部署及使用


下一篇:JS 实战: 一文了解 5 种文件上传场景(React + Koa 实现)