NODE JS сессия пуста - PullRequest
       3

NODE JS сессия пуста

0 голосов
/ 16 января 2019

Я создал сеанс для регистрации активности пользователя на моем веб-сайте. Однако я набираю адрес веб-сайта в браузере и захожу на веб-сайт в тот момент, когда сеанс имеет значение 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()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...