koa 基础(十六)koa 中 session 的使用
2024-10-20 06:40:04
1.app.js
/**
* koa 中 session 的使用
* 1、npm install koa-session --save
* 2、const session = require('koa-session');
* 3、app.keys = ['some secret hurr'];
* const CONFIG = {
* key: 'koa:sess',
* maxAge: 86400000,
* overwrite: true,
* httpOnly: true,
* signed: true,
* rolling: false,
* renew: false
* }
*
* 4、设置 session
* ctx.session.username = '张三';
* 5、获取 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);
.
最新文章
- Python for Infomatics 第13章 网页服务三(译)
- 【代码笔记】iOS-推荐收听,左右两个tableView
- RTP、RTCP协议学习-2015.04.15
- 定时器的fireDate指的是触发时间
- FL2440驱动添加(4)LED 驱动添加
- Engine中如何更改矢量图层字段别名?
- JS操作cookie以及本地存储(sessionStorage 和 localStorage )
- jquery 提示信息显示后自动消失的具体实现
- QT VS配置UNICODE问题
- image.xx.com 通过haproxy 跳转到内部图片服务器
- Drop dual
- 当list做gridview的数据源时,可以用泛型来对list进行排序
- delphi字符串操作函数一览
- 自学Python全栈开发的第二次笔记(Python需要注意的地方)
- 开源视频会议系统:OpenMeetings 安装方法
- Unity UGUI 小知识
- C#复习笔记(5)--C#5:简化的异步编程(异步编程的基础知识)
- delphi 的 ORM 框架
- Log4j Threshold属性指定输出等级
- 如何将购物车信息存到Redis中?