快速会话 - 在 React 应用程序中添加和访问 req 之外的自定义 cookie 字段

Express session - Add and access custom cookie field outside of req in a react app

我有一个使用快速会话的 React 应用程序。标准会话和 cookie 按预期工作,但我正在尝试在请求上下文之外添加自定义字段,如下所示。

import session from 'express-session';

export default ({ children }) => {
  
  console.log("session.darkState at top ", session.darkState);//check whats stored when refreshed
  const [darkState, setDarkState] = useState(session.darkState?session.darkState:false);

  function giveMeTheme(darkStateFromAppBar) {
    setDarkState(darkStateFromAppBar);
    session.darkState = darkState;//store in session
    console.log(session.darkState);
  }

我无法使用请求上下文,所以我只是使用会话.....

session.darkState 当用户导航到另一个页面或刷新时返回未定义状态。

如何存储会话时长的字段?

我使用 mongo 存储,当用户登录时,我在 mongodb 中保存所有标准字段,例如 resave、saveUninitialized。

我找不到通过快速会话添加自定义 cookie 的解决方案,因此最终使用 react-cookie

import { useCookies } from 'react-cookie';

import NameForm from './NameForm';

function App() {
  const [cookies, setCookie] = useCookies(['name']);

  function onChange(newName) {
    setCookie('name', newName, { path: '/' });
  }

  return (
    <div>
      <NameForm name={cookies.name} onChange={onChange} />
      {cookies.name && <h1>Hello {cookies.name}!</h1>}
    </div>
  );
}