2017-04-11 86 views
0

此代码打印所有快递会话属性的console.log不节点JS

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

打印

会议{饼干:{路径: '/', _expires:空, originalMaxAge:空, 仅Http:真正},护照:{用户: '红'}}

然后

2sJgQxjBCbKgPiUN3pUdcDty_35GELeE

是内部存储sessionsession.id?为什么在第一次拨打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

理由downvote? – user2136963

+0

请确定您使用的是Express和Express-session。 –

+0

添加快递标签 – user2136963

回答

1

在Node.js的,console.log只能通过使用Object.keys()显示自己枚举的属性的对象的

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

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

Source