node session会话

会话机制:

浏览器-->服务器

浏览器<--服务器 (产生一个会话id,保存在cookie中)

浏览器-->服务器(服务器根据会话id关联到相应数据信息体data)

var express = require('express');
var session = require('express-session');
var cookieParser = require('cookie-parser');

//在安装cookie-parser时可能会出现问题,可以用国内淘宝镜像,安装淘宝镜像

//参考网址:https://blog.csdn.net/x386277405/article/details/78297526

var app = express();

app.use(cookieParser());
app.use(session({

  name : 'sess‘,  //在cookie中session的字段名,默认为 connect.sid
  store : ,   //session的储存方式,默认存放在内存中,也可以使用 redis,mongodb 等。express 生态中都有相应模块的支持。

  secret : '老王',  //计算hash值,放在cookie中,使产生的signedCookie防篡改

  cookie : {maxAge:20000}  ,//设置存放 session id 的 cookie 的相关选项,默认为(default: { path: '/', httpOnly: true, secure: false, maxAge: null })

  genid :   ,//产生一个新的 session_id 时,所使用的函数, 默认使用 uid2 这个 npm 包

  rolling: false  ,//每个请求都重新设置一个 cookie,默认为 false

  resave : true  //即使 session 没有被修改,也保存 session 值,默认为 true
}));

app.get('/num',function(req,res){
  if(!req.session.num){
    req.session.num = 1;
  }
  req.session.num++;
  res.send("the num is:"+req.session.num);
});
app.listen(8000);

同时对session的操作可以将session对象保存到服务器文件目录下,需要用到session-file-store插件

var session require('express-session');
var FileStore require('session-file-store')(session);
 
app.use(session({
    storenew FileStore(),
}));

参考网址:http://wiki.jikexueyuan.com/project/node-lessons/cookie-session.html

原文地址:https://www.cnblogs.com/TomAndJerry/p/9043595.html