nodejs中的session

来源:互联网 发布:初学者吉他 知乎 编辑:程序博客网 时间:2024/06/06 03:02
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');// 首先引入 express-session 这个模块var session = require('express-session');var app = express();app.listen(5000);// 按照上面的解释,设置 session 的可选参数app.use(session({  secret: 'recommand 128 bytes random string', // 建议使用 128 个字符的随机字符串  cookie: { maxAge: 60 * 1000 }}));app.get('/', function (req, res) {  // 检查 session 中的 isVisit 字段  // 如果存在则增加一次,否则为 session 设置 isVisit 字段,并初始化为 1。  if(req.session.isVisit) {    req.session.isVisit++;    res.send('<p>第 ' + req.session.isVisit + '次来此页面</p>');  } else {    req.session.isVisit = 1;    res.send("欢迎第一次来这里");    console.log(req.session);  }});

express-session的常用参数:
      secret:一个String类型的字符串,作为服务器端生成session的签名。
      name:返回客户端的key的名称,默认为connect.sid,也可以自己设置。
      resave:(是否允许)当客户端并行发送多个请求时,其中一个请求在另一个请求结束时对session进行修改覆盖并保存。
                 默认为true。但是(后续版本)有可能默认失效,所以最好手动添加。
      saveUninitialized:初始化session时是否保存到存储。默认为true, 但是(后续版本)有可能默认失效,所以最好手动添加。
      cookie:设置返回到前端key的属性,默认值为{ path: '/', httpOnly: true, secure: false, maxAge: null }。
express-session的一些方法:
      Session.destroy():删除session,当检测到客户端关闭时调用。
      Session.reload():当session有修改时,刷新session。
      Session.regenerate():将已有session初始化。
      Session.save():保存session。


链接地址:https://github.com/alsotang/node-lessons/tree/master/lesson16


0 0
原创粉丝点击