如何使快速会话在整个NodeJS应用程序中可用

时间:2019-10-20 14:15:24

标签: node.js express session express-session

我正在NodeJS应用程序中使用express-session npm创建会话,但是问题是当我在一个模块中设置会话变量并在另一个模块中检索它时,它返回未定义的值。

例如,它们有两个模块,一个是我要在其中设置值的用户控制器,另一个是我要在其中检索值的发布模块。

所有可用的在线工作示例都在同一模块中检索会话变量,因此,这不是我想要实现的目标

主模块

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返回未定义,即无法检索在另一个模块中设置的会话变量。

0 个答案:

没有答案