Installation and use of express-session in node.js and persistence of session

1. Install express-session and session persistence middleware

npm install express-session

Session Persistence Plugin Installation Instructions

Use session-file- store on mac and linux platforms, npm install session-file-store
use nedb-session-store on win platformsnpm install nedb-session-store

2. Import and create middleware
mac

// 导入
const session = require("express-session");
const FileStore = require('session-file-store')(session);
// 创建 session 中间件
const sessionMiddleware = session({ 
    store:new FileStore(),//数据持久化方式,这里表示本地文件存储
    secret: 'keyboard cat', //加密key 可以随意书写
    cookie: { maxAge: 60000 }//两次请求的时间差 即超过这个时间再去访问 session就会失效
 }) 

win

var session = require("express-session")
var NedbStore = require('nedb-session-store')( session );
const sessionMiddleware = session({
    secret: "fas fas",
    resave: false,
    saveUninitialized: false,
    cookie: {
      path: '/',
      httpOnly: true,
      maxAge: 365 * 24 * 60 * 60 * 1000   // e.g. 1 year
    },
    store: new NedbStore({
      filename: 'path_to_nedb_persistence_file.db'
    })
  })

3. Add session middleware to express application

app.use(sessionMiddleware);

The above code is in app.js!

4. The use of session in routing

router.get('/', function(req, res) { 
  const session = req.session;
  session.xxx //操作session
   });

Example of use

background index.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  const session = req.session;
  if (!session.num) {
    session.num = 0;
  }
  console.log(++session.num);
  res.render('index', { title: `Express这是第 ${session.num} 次访问` });
});

module.exports = router;

If within the set time limit, even if the server is turned off and turned on again, you can access session.num!
users.js in other interfaces

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  const session = req.session;
  if(!session.num){
    session.num = 0;
  }
  if(session.user){
      let name = session.name;
       res.send(name + "第" + ++session.num + "次登录");
  }else{
      res.send("还没有登录");
});

module.exports = router;

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325502998&siteId=291194637