2017-04-11 81 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