2014-06-19 4 views
-1

Comment dois-je donner l'accès à la session en cours aux modules de mon application node.js en considérant que je ne peux l'obtenir qu'à l'intérieur de la fonction de la demande?
C'est une application assez complexe mais modulaire et passer la session semble un peu difficile, et je devrais réimplémenter beaucoup de choses.
Idéalement, je l'attacherais à un objet exporté avec module.exports et le nécessiterais dans d'autres modules. Mais j'ai peur que les demandes concurrentes soient écrasées et que je puisse me retrouver avec des conflits.Session de serveur global dans l'application express node.js

+0

Comment serait-il écrasé sur des demandes simultanées? Avez-vous un exemple? – Michael

Répondre

0

Avez-vous essayé res.locals? Dans les documents officiels, il est indiqué que «les variables locales de réponse sont limitées à la requête, donc uniquement disponibles pour les vues rendues au cours de ce cycle de requête/réponse, le cas échéant. Lorsque le rappel de votre middleware/route est appelé, vous pouvez définir res.locals.myProp = "some value" et y accéder depuis une vue, en utilisant locals.myProp.

+0

Je n'ai pas besoin des données dans une vue, mais dans d'autres modules de nœuds requis en fonction de l'itinéraire actuel. –

+0

Désolé, mon mauvais, j'ai lu votre message trop vite. Vous pouvez définir 'app.locals.myProp' sur chaque requête ... mais vous pourriez vous retrouver avec le même problème que vous avez peur. Je ne sais pas, honnêtement je n'ai jamais essayé ça. Peut-être que quelqu'un viendra avec une meilleure solution –