直到页面重新加载才反映 Sapper $Session 更改

问题描述

在我的 nav.svelte 组件中,我有

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

在 login.svelte 中:

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);
        }
  }

login.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 }));

server.js:

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

nav.svelte 中的输出是: ${"token":{"_id":"kjbLgeU8k3GPr6jBd8NkCj","username":"matt123","password":"$2b$10$aXMJc64o9W166OL12CG/A.lWyuB9zdPkaNUsze3Lch6Z2khHaTKY.","access":"user"}} - $undefined

注意数据在那里,但用户名输出未定义。我相信我做错了什么,但它是模糊的。 向 sapper 项目的跟踪器添加一个问题:

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...