Я использую экспресс-сеанс 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 возвращает неопределенное значение, т.е. он не может получить переменную сеанса, установленную в другом модуле.