Как сделать экспресс-сессию доступной в приложении NodeJS - PullRequest
0 голосов
/ 20 октября 2019

Я использую экспресс-сеанс npm в своем приложении NodeJS для создания сеанса. Но проблема в том, что когда я устанавливаю переменную сеанса в одном модуле и извлекаю ее в другом модуле, она возвращает неопределенное значение.

Напримерэто два модуля, один из которых - «Контроллер пользователя», в котором я устанавливаю значение, а другой - «Модуль выпуска», в котором я получаю значение.

Все доступные в сети рабочие примеры извлекают переменную сеанса в одном и том же модуле, поэтомуэто то, чего я не пытаюсь достичь

Основной модуль

var session=require('express-session')
app.use(session({cookie: {
  path    : '/',
  httpOnly: false,
  maxAge  : 24*60*60*1000
},secret:"asfsafasfasfasfa"}))

Модуль пользовательского контроллера

 findUser(req,res)
        .then(validatePassword)
        .then(generateToken)
        .then(saveToken)
        .then((resolve) => {
            req.session.authToken="Hello"
            console.log("Login",req.session.authToken)
            req.session.authToken=resolve.authToken
            let apiResponse = response.generate(false, 'Login Successful', 200, resolve)
            res.status(200)
            res.send(apiResponse)
        })

Модуль выпуска

let fetchIssues=(req,res)=>{
    console.log("Session storage"+req.session.authToken)
    return new Promise((resolve,reject)=>{
        issue.find({'assignto':ss.getItem('userId')},(err,issueDetails)=>{
            if(err){
                reject()
            }else{
                console.log("Issue Details"+issueDetails)
            resolve()
            let apiResponse=response.generate(false,"Issue Fetched Succesfully",200,issueDetails)
            res.send(apiResponse)
            }
        })
    })
}

req.session.authToken возвращает неопределенное значение, т.е. он не может получить переменную сеанса, установленную в другом модуле.

...