1.app.jsjavascript
/** * koa 中 session 的使用 * 一、npm install koa-session --save * 二、const session = require('koa-session'); * 三、app.keys = ['some secret hurr']; * const CONFIG = { * key: 'koa:sess', * maxAge: 86400000, * overwrite: true, * httpOnly: true, * signed: true, * rolling: false, * renew: false * } * * 四、設置 session * ctx.session.username = '張三'; * 五、獲取 session * ctx.session.username */ // 引入模塊 const Koa = require('koa'); const router = require('koa-router')(); /*引入是實例化路由 推薦*/ const render = require('koa-art-template'); const path = require('path'); const session = require('koa-session'); // 實例化 let app = new Koa(); // 配置 koa-art-template 模板引擎 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: 86400000, /** cookie的過時時間 【須要修改】*/ overwrite: true, /** (boolean) can overwrite or not (default true) 沒有效果 默認*/ httpOnly: true, /** true表示只有服務器端能夠獲取cookie*/ signed: true, /** 默認 簽名 */ rolling: false, /** 在每次請求時強行設置 cookie,這將重置 cookie 過時時間(默認:false) 【須要修改】*/ renew: true, /** (boolean) renew session when session is nearly expired 【須要修改】*/ } app.use(session(CONFIG, app)); router.get('/', async (ctx) => { // 獲取session console.log(ctx.session.userinfo); await ctx.render('index', { list: { name: '張三' } }); }) router.get('/news', async (ctx) => { // 獲取session console.log(ctx.session.userinfo); ctx.body = '新聞頁面'; }) router.get('/login', async (ctx) => { // 設置session ctx.session.userinfo = '張三'; ctx.body = '登陸成功'; }) app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000);
.html