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>