代码之家  ›  专栏  ›  技术社区  ›  mtyson

Sapper$会话更改在页面重新加载之前不会反映

  •  0
  • mtyson  · 技术社区  · 5 年前

    在我的导航中。我拥有的苗条组件:

    {#if $session.token}
      ${JSON.stringify($session.token)} - ${JSON.stringify($session.token.username)}
    {/if}
    

    在登录中。苗条:

    const { session } = stores();
      let username, password;
      async function onLogin(username, password){
        const response = await fetch(`auth/login`, {
                method:"POST",
                headers:{ 'Content-Type': 'application/json' },
                body: JSON.stringify({"username":username,"password":password})
        })
        if (response.ok) {
          const json = await response.json();
          session.set({ token: json });
          $session.token = json;
          goto("/");
            } else {
                throw new Error(response);
            }
      }
    

    登录名。js处理程序:

     req.session.token = user; //parsed.token;
            console.log(`req.session.token: ${JSON.stringify(req.session.token)}`);
            res.writeHead(200, {
              'Content-Type': 'application/json'
            });
            res.end(JSON.stringify({ token: user }));
    

    服务器js公司:

    sapper.middleware({
          session: (req, res) => {
            console.log(`% req.session.token: ${JSON.stringify(req.session.token)}`);
            return ({
              token: req.session.token
            })}
          })
    

    以nav为单位的输出。苗条是: ${"token":{"_id":"kjbLgeU8k3GPr6jBd8NkCj","username":"matt123","password":"$2b$10$aXMJc64o9W166OL12CG/A.lWyuB9zdPkaNUsze3Lch6Z2khHaTKY.","access":"user"}} - $undefined

    请注意,数据存在,但用户名输出未定义。我相信我做错了什么,但这并不清楚。 在sapper项目的跟踪器中添加了一个问题:

    https://github.com/sveltejs/sapper/issues/1711

    0 回复  |  直到 5 年前