2017-04-11 16 views
0

Dieser Codeconsole.log druckt nicht alle ausdrücklichen Sitzungseigenschaften in Knoten js

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

druckt

Session {cookie: {path: '/', _expires: null, originalMaxAge: null, Httponly: true}, Pass: {user: 'red'}}

und dann

2sJgQxjBCbKgPiUN3pUdcDty_35GELeE

Ist session.id innerhalb session gespeichert? Warum wird es nicht nach dem ersten Anruf auf console.log angezeigt? Hier

ist das Setup:

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

Gründe für die downvote? – user2136963

+0

Bitte präzisieren Sie, dass Sie Express und Express-Session verwenden. –

+0

Hinzugefügt das Express-Tag – user2136963

Antwort

1

In Node.js, console.log zeigt nur eigene enumerable Eigenschaften eines Objekts durch Object.keys() verwenden.

Die id Eigenschaft eines Session Instanz ist nicht zählbare, da sie als (enumerable: false by default) definiert ist:

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

Source