node.js - 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) 分配的会话?
有人帮我..谢谢...
解决方案
另外我认为你应该使用*
而不是/*
.
推荐阅读
- excel - 用于突出显示行的 Excel 条件格式
- json - 使用 JSONPath 从 JSON 中提取值,不包括特定值
- javascript - highchart的columnrange图中的重叠条
- pandas - 根据信息最少的方式在 Pandas 中删除部分重复项
- java - Spring 5 不再向共享 entityManager 注入代理
- google-cloud-platform - 如何使用 gcloud 在实例上设置磁盘删除规则
- swift - Mandelbrot 迅速设置
- python-3.7 - “join”的打印输出中不需要的双反斜杠(Python 3.7.3)
- postgresql - 尝试使用 Postgres 设置 Adonis 时缺少数据库连接
- css - css img inset box-shadow 技巧 + 中心 (v+h) 锚点 + 最大高度