nodejs session应用 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

session的简单应用

跟cookie一样都需要单独的安装和引用模块, 安装模块:$sudo npm install express-session 主要的方法就是 session(options),其中 options 中包含可选参数,主要有:

  • name: 设置 cookie 中,保存 session 的字段名称,默认为 connect.sid 。
  • store: session 的存储方式,默认存放在内存中,也可以使用 redis,mongodb 等。express 生态中都有相应模块的支持。
  • secret: 通过设置的 secret 字符串,来计算 hash 值并放在 cookie 中,使产生的 signedCookie 防篡改。
  • cookie: 设置存放 session id 的 cookie 的相关选项,默认为 (default: { path: '/', httpOnly: true, secure: false, maxAge: null })
  • genid: 产生一个新的 session_id 时,所使用的函数, 默认使用 uid2 这个 npm 包。
  • rolling: 每个请求都重新设置一个 cookie,默认为 false。
  • resave: 即使 session 没有被修改,也保存 session 值,默认为 true。

示例

var express = require('express');
var session = require('express-session');
var app = express();

app.use(session({
    secret: 'hubwiz app', //secret的值建议使用随机字符串
    cookie: {maxAge: 60 * 1000 * 30} // 过期时间(毫秒)
}));
app.get('/', function (req, res) {
    if (req.session.sign) {//检查用户是否已经登录
        console.log(req.session);//打印session的值
        res.send('welecome <strong>' + req.session.name + '</strong>, 欢迎你再次登录');
    } else {
        req.session.sign = true;
        req.session.name = '汇智网';
        res.send('欢迎登陆!');
    }
});
app.listen(80);
  1. 首先清空app.js中的代码。如果文件中的代码需要保留,可以存到个人笔记中
  2. 再按照上面的示例验证一下express中的session。
PS:不要忘记引用模块。