【问题标题】:Store an instance in Express js session在 Express js 会话中存储一个实例
【发布时间】:2014-07-10 22:01:55
【问题描述】:

我正在使用 expressjs 会话,并且我有一个需要存储的实例:

function a(){this.name="";}
var ins = new a();
req.session['user'] = ins;

当我下次得到res.session['user']时,对象不是instanceof a,它不能访问a中的任何原型方法, 我如何将对象的引用存储在会话中,看起来会话会将其转换为 json 对象

【问题讨论】:

    标签: node.js session express instance


    【解决方案1】:

    您不能在 JSON 中存储这样的实例,除非:

    • 您提供自己的自定义序列化程序(在您的类/对象中实现 toJSON() 函数)
    • 您还可以识别您的序列化对象并在传递给 JSON.parse() 的 reviver 函数中实例化一个新实例。

    【讨论】:

      【解决方案2】:

      您可以做的一件事是创建一个实例/会话映射,您可以通过session.id 识别它,我在这里写了一篇博客:

      https://tomblanchard.co.uk/storing-instances-in-express-sessions/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-23
        • 1970-01-01
        • 1970-01-01
        • 2016-09-07
        • 1970-01-01
        • 1970-01-01
        • 2012-06-09
        • 2021-03-17
        相关资源
        最近更新 更多