req.session returns wrong value

删除回忆录丶 提交于 2020-07-10 10:24:25

问题


app.js

const mongoose = require('mongoose');
const session = require('express-session');
const MongoDBStore = require('connect-mongodb-session')(session);


const MONGODB_URI =
  'mongodb+srv://@cluster0-szxlh.mongodb.net/shop';


const store = new MongoDBStore({
  uri: MONGODB_URI,
  collection: 'sessions'
});


app.use(
  session({
    secret: 'my secret',
    resave: false,
    saveUninitialized: false,
    store: store
  })
);


app.use((req, res, next) => {
  console.log("in app");
  res.locals.isAuthenticated = req.session.isLoggedIn;
  res.locals.isShopAuthenticated = req.session.isShopLoggedIn;
  res.locals.isUserAuthenticated = req.session.isUserLoggedIn;
  res.locals.islat=req.session.lat;
  res.locals.islang=req.session.lang;
  res.locals.csrfToken = req.csrfToken();
  console.log(req.session.lat); //returns wrong(previous)value
  console.log(req.session.lang); //returns wrong(previous)value
  next();
});
app.use(function (req, res, next) {
  res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');
  next();
});

post request which sets the cookie

exports.postHome=(req,res,next)=>{
    const lattitude=req.body.lattitude;
    const longitude= req.body.longitude;
    req.session.lat=lattitude;  //setting session
    req.session.lang=longitude; 
    req.session.save();
    console.log("inpost");
    console.log(lattitude);
    console.log(longitude);
    res.redirect('/');
  }

I have used routes after the session middleware. I have checked in database the value got updated but req.session.lat in app.js returns previously updated value some times

logs

inpost 13.336614284510889 80.19245464019774 in app 13.336614284510889 80.19245464019774

inpost 13.334818684323631 80.18992263488768 in app 13.336614284510889 (check it returns previous value sometimes) 80.19245464019774

来源:https://stackoverflow.com/questions/62773679/req-session-returns-wrong-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!