首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从fetch获取所有响应数据

无法从fetch获取所有响应数据
EN

Stack Overflow用户
提问于 2018-05-03 18:54:32
回答 1查看 179关注 0票数 0

所以我试着在会话中存储一些信息,供以后使用。但是当我把它拿进来的时候,它不会全部回来。尽管get路线有所有的数据。

当用户在会话中存储他们的id时,我的思维过程就在服务器端。然后,我将有一个/userinfo路由来转储我在json中需要的所有数据。然后,我可以获取该/userinfo路由并在响应中获取数据。我的代码如下:

下面是要登录的邮政编码,我使用console.log来验证会话是否被修改。它是。

代码语言:javascript
运行
复制
User.authenticate(req.body.logemail, req.body.logpassword, function (error, user) {
   if (error || !user) {
     var err = new Error('Wrong email or password.');
     err.status = 401;
     return next(err);
  } else {
     req.session.userId = user._id;
     console.log(req.session);
     return res.redirect('/');
   }
 });

然后我有了这条路线:

代码语言:javascript
运行
复制
app.get('/userinfo', (req, res)=>{
  res.json(req.session);
});

如果我只去localhost:3000/userinfo,json看起来是这样的:

代码语言:javascript
运行
复制
{
  "cookie": {
    "originalMaxAge": null,
    "expires": null,
    "httpOnly": true,
    "path": "/"
  },
  "userId": "blahblahblah"
}

所以UserID确实存在。但是,当我最终去获取它时,我会对以下内容做出反应:

代码语言:javascript
运行
复制
fetch('http://localhost:3000/userinfo')
  .then(res => res.json())
  .then(data => console.log(data));

我只得到饼干。我不明白UserId的意思。我也尝试过将UserId添加到cookie中,以查看它是否有效,同样,我也得到了普通的cookie。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-05 21:39:57

我自己解决了这个问题,我甚至没有想过,但是我是从客户端提出请求的,所以当我通过fetch()app.get('/userinfo', (req, res)=>{ res.json(req.session); });提出请求时

服务器正在返回存储在客户端的会话,而客户端没有使用userId进行更新。因此,我需要从服务器端而不是从客户端请求返回会话数据。

我的解决方案是在服务器端创建和维护一个用户对象,当我需要访问用户数据时,从用户对象获取它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50162094

复制
相关文章

相似问题

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