2017-10-15 2 views
2

J'essaie de trouver l'équivalent de session_start() et $ _SESSION dans Node.js/Express afin de mettre l'identifiant de l'utilisateur courant dans la session . Presque chaque vidéo/tutoriel utilise session express, mais je lis que:

Avertissement Le stockage de session côté serveur par défaut, MemoryStore, est volontairement pas conçu pour un environnement de production. Il va fuir la mémoire dans la plupart des conditions, ne dépasse pas un seul processus, et est conçu pour le débogage et le développement.

Ai-je besoin d'un module particulier pour y parvenir?

Répondre

1

Vous devez connecter express-session à une base de données dans laquelle il peut stocker des sessions. La documentation contient une liste de magasins de sessions compatibles: https://github.com/expressjs/session#compatible-session-stores

L'utilisation de MongoDB est un choix populaire (https://github.com/jdesboeufs/connect-mongo) mais vous pouvez utiliser n'importe quel module dans la liste ci-dessus.

+0

J'utilise actuellement MySQL pour ma base de données, mais comme je l'ai dit dans le post, j'ai lu que la session express n'est pas conçue pour un environnement de production. – Bobimaru

+0

Non, la configuration par défaut d'express-session n'est pas pour les environnements de production. Par défaut, express-session ne stocke que des sessions en mémoire. Vous devriez stocker vos sessions dans MySQL. Utilisez donc 'express-mysql-session' (https://www.npmjs.com/package/express-mysql-session) avec' express-session'. Cela fonctionnera très bien pour la production. – tfogo

+0

Donc, l'avertissement que vous voyez est juste de dire "Hey, vous devriez utiliser quelque chose de cette liste avec une session express: https://github.com/expressjs/session#compatible-session-stores" – tfogo