2017-10-15 23 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

相關問題