【问题标题】:Stabilizing express session on AppEngine Node.js Standard environment在 AppEngine Node.js 标准环境中稳定快速会话
【发布时间】:2019-03-27 05:46:44
【问题描述】:

我在 GAE node.js 标准环境中的应用程序中实现了会话机制,使用没有 store 值的 express-session。尽管它在 localhost 上运行没有问题,但无论在 GAE node.js 标准环境中如何配置 cookie.maxAge,会话似乎都已终止。这就是我所拥有的:

app.use(session({
  cookie: {
    maxAge: 31536000000, // 1 year
    secure: true
  },
  secret: SECRET,
  resave: true,
  saveUninitialized: true
}));

我认为这是由 GAE 不持久内存引起的,如果是这样,我应该添加 store 选项。我寻找了一个最简单的选项并找到了 memcache,但它是 not yet available on GAE node.js standard

  1. 这是应用程序没有store 选项的问题吗?
  2. 在 GAE node.js 标准上使用 store 的最简单方法是什么?
  3. 如何在此环境中使用 memcache?

【问题讨论】:

    标签: node.js google-app-engine express-session google-appengine-node


    【解决方案1】:

    您是正确的,内存在 App Engine 标准环境中不是持久的:到达同一实例的请求将能够重用内存,但是,您的应用可能在许多实例上运行,而这些实例都是短暂的。

    GCP 尚未在 App Engine 上提供来自 Node.js 的 memcache 解决方案。目前的建议是使用第三方解决方案,如 Redis Labs Memcache(参见tutorial) 配置 memcache 实例后,您应该可以使用MemecachedStore 进行快速会话。见this sample

    另一种选择是使用 Cloud Datastore 来存储会话。请参阅nodejs-datastore-session 节点模块。我自己没试过。

    【讨论】:

    • 通过使用Datastore,问题似乎已经解决了。谢谢!
    • 碰巧知道这个包是否也适用于 Firestore?
    猜你喜欢
    • 2018-12-18
    • 1970-01-01
    • 2019-02-08
    • 2015-06-02
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多