此代码
router.post("/", (req, res) =>
{
console.log(req.session)
console.log(req.session.id)
})
打印
会话{cookie:{路径:' /', _expires:null, originalMaxAge:null, httpOnly:true},护照:{user:' red' }}
然后
2sJgQxjBCbKgPiUN3pUdcDty_35GELeE
session.id
内存有session
吗?为什么在第一次调用console.log
后没有显示?
以下是设置:
app.use(bodyParser.urlencoded({ extended:true }))
var RedisStore = connectRedis(session)
app.use(session(
{
store: new RedisStore({ url: config.redisStore.url }),
secret: config.redisStore.url,
resave: false,
saveUninitialized: false
}))
答案 0 :(得分:1)
在Node.js中,console.log
仅使用Object.keys()
显示对象的自己的可枚举属性。
id
个实例的Session
属性无法枚举,因为它被定义为(enumerable: false
by default):
Object.defineProperty(this, 'id', { value: req.sessionID });