2017-10-15 52 views
2

我试图在Node.js/Express中找到相当于session_start()和$ _SESSION的值,以便将当前用户的id放入会话中。几乎所有的视频/教程使用快递-会议,但我看书上说:

警告默认服务器端会话存储,MemoryStore的,是 故意不适合生产环境。在大多数情况下,它会泄漏内存 ,不会通过单个进程扩展,而是用于调试和开发。

我需要某个模块来实现吗?

回答

1

您应该将express-session连接到可以存储会话的数据库。在文档中有一个兼容会话存储列表:https://github.com/expressjs/session#compatible-session-stores

使用MongoDB是一种流行的选择(https://github.com/jdesboeufs/connect-mongo),但您可以使用上面列表中的任何模块。

+0

我目前对我的数据库使用MySQL,但就像我在帖子中说的那样,我读了快速会话不是为生产环境设计的。 – Bobimaru

+0

不,快速会话的默认配置不适用于生产环境。默认情况下,快速会话只是将会话存储在内存中。你应该将你的会话存储在MySQL中。因此,使用'express-mysql-session'(https://www.npmjs.com/package/express-mysql-session)和'express-session'。这对生产很有用。 – tfogo

+0

因此,您看到的警告只是说:“嘿,您应该使用快速会话从此列表中使用某些内容:https://github.com/expressjs/session#compatible-session-stores” – tfogo