【问题标题】:console.log doesn't print all express session properties in node jsconsole.log 不会打印节点 js 中的所有快速会话属性
【发布时间】:2017-09-07 00:14:17
【问题描述】:

这段代码

router.post("/", (req, res) =>
{
    console.log(req.session)
    console.log(req.session.id)
})

打印

会话 { cookie: { 路径: '/', _expires:空, 原始最大年龄:空, 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
    }))

【问题讨论】:

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


【解决方案1】:

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

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

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

Source

【讨论】:

    猜你喜欢
    • 2014-06-14
    • 1970-01-01
    • 2013-11-07
    • 2015-12-28
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2012-06-15
    相关资源
    最近更新 更多