首页 > 解决方案 > node.js express-session在路由器中不起作用

问题描述

我有一些问题

我在我的应用程序中使用快速会话中间件

这行得通

它不适用于任何特定的路由器。

我的代码如下

//app.js

app.use(session({
    secret: 'D$YTRH#%#$@^$#YR',
    resave: false,
    saveUninitialized: true,
}))

//assign session in outside

app.get(/*, (req, res, next)=>{
    req.session.outSide = "outSideBlah"
    next()
}

//my session Check middleware
app.get('/*', (req, res, next)=>{
    console.log(req.session._inSide)
    console.log(req.session._outSide)
    next()
}

const auth = require('./routes/auth.js')(express)
app.use('/auth', auth)

//auth.js(我的路由器)

//assign session in router ( inside)
module.exports = (express) => {
    const auth = express.Router()
    auth.post('/login', (req, res)=>{
        req.session._inside = 'insideBlah'  //Assign a session here
    ............some auth code ......
    }
    return auth
}

登录后

在我的会话中检查中间件

console.log(req.session.inSide) // undefined
console.log(req.session.outSide) // "outSideBlah"

即使我在 auth.js 中分配了 req.session.inSide

req.session.inside 未定义

问题是什么?

为什么我无法访问由我的路由器 (auth.js) 分配的会话?

有人帮我..谢谢...

标签: node.jsexpresssessionrouter

解决方案


另外我认为你应该使用*而不是/*.


推荐阅读