首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取express.js中所有登录用户的in

获取express.js中所有登录用户的in
EN

Stack Overflow用户
提问于 2018-04-22 13:55:10
回答 1查看 60关注 0票数 0

我目前正在进行项目,并试图获取当前登录的用户ids列表。我读过这个问题,here on StackOverflow,但是我在访问对象的属性时遇到了问题。

目前,我有以下几点:

代码语言:javascript
复制
let sessions = req.sessionStore.sessions
console.log(JSON.stringify(sessions))

这在控制台中给出了以下输出:

代码语言:javascript
复制
{"zQPGZTGLKSLna0qsB25UH2B-LHq-bhGj":"{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"onlineUsers\":[],\"passport\":{\"user\":{\"id\":\"102960089981993612086\",\"displayName\":\"John Doe\",\"name\":{\"familyName\":\"Kent\",\"givenName\":\"John\"},\"emails\":[{\"value\":\"user1@gmail.com\",\"type\":\"account\"}],\"photos\":[{\"value\":\"https://lh3.googleusercontent.com/-gSSOtDlqObQ/AAAAAAAAAAI/AAAAAAAAABo/Glisghf57868BXEc/photo.jpg?sz=50\"}],\"provider\":\"google\",\"_raw\":\"{\\n \\\"kind\\\": \\\"plus#person\\\",\\n \\\"etag\\\": \\\"\\\\\\\"EhMivDE25UysA1ltNG8tqFM2v-A/QhO28UAZgzAMK8E3xGjKjeSkOdw\\\\\\\"\\\",\\n \\\"emails\\\": [\\n  {\\n   \\\"value\\\": \\\"user1@gmail.com\\\",\\n   \\\"type\\\": \\\"account\\\"\\n  }\\n ],\\n \\\"objectType\\\": \\\"person\\\",\\n \\\"id\\\": \\\"102960089981993612086\\\",\\n \\\"displayName\\\": \\\"John Doe\\\",\\n \\\"name\\\": {\\n  \\\"familyName\\\": \\\"Doe\\\",\\n  \\\"givenName\\\": \\\"John\\\"\\n },\\n \\\"image\\\": {\\n  \\\"url\\\": \\\"https://lh3.googleusercontent.com/-gSSOtDfhjgObQ/AAAAAAAAAAI/AAAAAAAAABo/Glfh5767BXEc/photo.jpg?sz=50\\\",\\n  \\\"isDefault\\\": false\\n },\\n \\\"isPlusUser\\\": false,\\n \\\"language\\\": \\\"en_GB\\\",\\n \\\"verified\\\": false,\\n \\\"domain\\\": \\\"gmail.com\\\"\\n}\\n\",\"_json\":{\"kind\":\"plus#person\",\"etag\":\"\\\"EhMivDE25UysA1ltNG8tqFM2v-A/QhO28UAZgzAMK8E3xGjKjeSkOdw\\\"\",\"emails\":[{\"value\":\"user1@gmail.com\",\"type\":\"account\"}],\"objectType\":\"person\",\"id\":\"102960089981993612086\",\"displayName\":\"John Doe\",\"name\":{\"familyName\":\"Doe\",\"givenName\":\"John\"},\"image\":{\"url\":\"https://lh3.googleusercontent.com/-gSSO547gjfgQ/AAAAAAAAAAI/AAAAAAAAABo/GlispvZBXEc/photo.jpg?sz=50\",\"isDefault\":false},\"isPlusUser\":false,\"language\":\"en_GB\",\"verified\":false,\"domain\":\"gmail.com\"},\"userId\":1,\"userEmail\":\"user1@gmail.com\",\"onlineUsers\":[1]}}}","5wgujtyTy4VKE5nuSdFFn5KeKjw_pN7S":"{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"onlineUsers\":[],\"passport\":{\"user\":{\"id\":\"103606132706227313142\",\"displayName\":\"jane doe\",\"name\":{\"familyName\":\"doe\",\"givenName\":\"jane\"},\"emails\":[{\"value\":\"user2@gmail.com\",\"type\":\"account\"}],\"photos\":[{\"value\":\"https://lh3.googleusercontent.com/-2Xu2xfgJLj4/AAAAAAAAAAI/AAAAAAAAAE8/KNkdMSydfe8/photo.jpg?sz=50\"}],\"gender\":\"male\",\"provider\":\"google\",\"_raw\":\"{\\n \\\"kind\\\": \\\"plus#person\\\",\\n \\\"etag\\\": \\\"\\\\\\\"EhMivDE25UysA1ltNG8tqFM2v-A/WzeABRHoHgmU-_X-r9oFDYUKNnY\\\\\\\"\\\",\\n \\\"gender\\\": \\\"male\\\",\\n \\\"emails\\\": [\\n  {\\n   \\\"value\\\": \\\"user2@gmail.com\\\",\\n   \\\"type\\\": \\\"account\\\"\\n  }\\n ],\\n \\\"urls\\\": [\\n  {\\n   \\\"value\\\": \\\"http://www.youtube.com/user/user28469746\\\",\\n
  \\\"type\\\": \\\"otherProfile\\\",\\n   \\\"label\\\": \\\"Programming Tutorials\\\"\\n  }\\n ],\\n \\\"objectType\\\": \\\"person\\\",\\n \\\"id\\\": \\\"103606132706227313142\\\",\\n \\\"displayName\\\": \\\"jane doe\\\",\\n \\\"name\\\": {\\n  \\\"familyName\\\": \\\"doe\\\",\\n  \\\"givenName\\\": \\\"jane\\\"\\n },\\n \\\"url\\\": \\\"https://plus.google.com/10360613547706227313142\\\",\\n \\\"image\\\": {\\n  \\\"url\\\": \\\"https://lh3.googleusercontent.com/-2Xu2fhgJLj4/AAAAAAAAAAI/AAAAAAAAAE8/KNkdMSyEYe8/photo.jpg?sz=50\\\",\\n  \\\"isDefault\\\": false\\n },\\n \\\"isPlusUser\\\": true,\\n \\\"language\\\": \\\"en\\\",\\n \\\"circledByCount\\\": 1,\\n \\\"verified\\\": false\\n}\\n\",\"_json\":{\"kind\":\"plus#person\",\"etag\":\"\\\"EhMivDE25UysA1ltNG8tqFM2v-A/WzeABRHoHgmU-_X-r9oFDYUKNnY\\\"\",\"gender\":\"male\",\"emails\":[{\"value\":\"user2@gmail.com\",\"type\":\"account\"}],\"urls\":[{\"value\":\"http://www.youtube.com/user/user4577576\",\"type\":\"otherProfile\",\"label\":\"Programming Tutorials\"}],\"objectType\":\"person\",\"id\":\"1036061327056676727313142\",\"displayName\":\"jane doe\",\"name\":{\"familyName\":\"doe\",\"givenName\":\"matt\"},\"url\":\"https://plus.google.com/103606132706227313142\",\"image\":{\"url\":\"https://lh3.googleusercontent.com/-2Xu2x56564Lj4/AAAAAAAAAAI/AAAAAAAAAE8/KNkdM544EYe8/photo.jpg?sz=50\",\"isDefault\":false},\"isPlusUser\":true,\"language\":\"en\",\"circledByCount\":1,\"verified\":false}}}}"}

如您所见,有两个登录用户。我想迭代这个对象,并将passport中的两个用户ids输出到控制台。

我试过以下几种方法:

代码语言:javascript
复制
for (sesh in sessions) {
    console.log(sessions[sesh].passport.user.id)
}

但这给了我一个未知数。

我也尝试过使用sessions.forEach(),但是这也不起作用。

我做错了什么?我需要先解析JSON吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-22 15:44:41

数据存储为JSON,您需要解析它,以便能够检索属性:

代码语言:javascript
复制
for (sesh in sessions) {
  console.log(JSON.parse(sessions[sesh]).passport.user.id)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49966705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档