console.log不会在节点js中打印所有快速会话属性

时间:2017-04-11 14:26:51

标签: javascript node.js session express express-session

此代码

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
    }))

1 个答案:

答案 0 :(得分:1)

在Node.js中,console.log仅使用Object.keys()显示对象的自己的可枚举属性

id个实例的Session属性无法枚举,因为它被定义为(enumerable: false by default):

Object.defineProperty(this, 'id', { value: req.sessionID });

Source