Я создал сеанс для регистрации активности пользователя на моем веб-сайте. Однако я набираю адрес веб-сайта в браузере и захожу на веб-сайт в тот момент, когда сеанс имеет значение NULL, хотя у меня есть app.use (session ({...})), но после того, как я обновляю / перезагружаю страницу или иду на другие страницы сеанса имеют правильное значение.
в моем index.js у меня есть следующее:
const session = require('express-session')
const user_session = require('./middlewares/session/sessions')
app.use('/static', express.static('public'));
app.use(cookieParser('secret key');
app.use(flash());
app.use(session({
secret: 'secret key',
resave: false,
saveUninitialized: true,
store: sessionStore,
cookie: {
secure: false,
maxAge: 86400000
}
}));
На каждом маршруте используется промежуточное ПО user_session.session
код для user_session.session следующий:
exports.session = (req,res,next) =>{
const pathname = parseurl(req).pathname
const sess_id = req.session_id ? req.session_id : req.sessionID//req.session.id
sessionStore.get(sess_id,(err,session)=>{
if (err) console.log(err)
else{
console.log(session) /// THE VALUE OF session is NULL
if(session){
if(!session.views){
session.views = {}
}
if(!session.activity){
session.activity = []
}
else{
console.log('add pathes to viwes and activity')
session.views[pathname] = (session.views[pathname] || 0) + 1
session.activity.push(pathname)
}
sessionStore.set(sess_id,session,(err => console.log(err)))
console.log(`${sess_id} -> ${pathname}`)
}
}
return next()
})
//return next()
}