node.js - 在 AppEngine Node.js 标准环境中稳定快速 session

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

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

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 标准上拥有商店的最简单方法是什么?
  3. 如何在此环境中使用 memcache?

最佳答案

您说得对,内存在 App Engine 标准环境中不是持久的:到达同一实例的请求将能够重复使用内存,但是,您的应用程序可能会在许多实例上运行,而这些实例无论如何都是短暂的。

GCP 尚未在 App Engine 上提供来自 Node.js 的内存缓存解决方案。当前建议是使用第三方解决方案,例如 Redis Labs Memcache(请参阅 tutorial) 配置 memcache 实例后,您应该能够为快速 session 使用 MemecachedStore。请参阅this sample

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

关于node.js - 在 AppEngine Node.js 标准环境中稳定快速 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52941411/

相关文章:

node.js - 从源安装 Node 后出现 "Process out of memory"错误

javascript - 如何在javascript中动态创建一个包含值数组的 map

java - maven-gae-plugin,如何将我的类打包为 JAR?

google-app-engine - 是否可以在 Java 应用程序中将 404 重定向到 Google App Engine Standard 上的 index.html?

node.js - express-session:文档中未列出 NPM 依赖项?

node.js - 如何正确使用System.import()?

node.js - 填充 ('model' 时出现 Mongoose 错误不是函数)

python - 在 html 模板中打印 appengine 模型实体 ID

javascript - 在用户接受 GDPR 和使用 cookie 之前阻止快速 session 设置 session ID

node.js - 什么是安全 session secret ?