Est-il possible de passer des arguments lors du chargement d'un module en utilisant require?Passage des arguments à require (lors du chargement du module)
J'ai un module, login.js qui fournit une fonctionnalité de connexion. Il nécessite une connexion à la base de données et je souhaite que la même connexion à la base de données soit utilisée dans tous mes modules. Maintenant, j'exporte une fonction login.setDatabase (...) qui me permet de spécifier une connexion à une base de données, et ça marche très bien. Mais je préfère passer la base de données et toutes les autres exigences lorsque je charge le module.
var db = ...
var login = require("./login.js")(db);
Je suis assez nouveau avec NodeJS et développent généralement en utilisant Java et le framework Spring, donc oui ... ceci est une injection de constructeur :) Est-il possible de faire quelque chose comme le code que je fournis ci-dessus?
Je vous recommande également regarder les réponses à la question [ce] (http://stackoverflow.com/questions/13080771/node-js-passing-variables). Comme indiqué dans ma réponse, un idiome commun est de passer l'objet 'app' aux modules requis. –
Au lieu de faire passer tout cet argument pour db, vous pouvez utiliser une implémentation [singleton] (http://www.dofactory.com/javascript/singleton-design-pattern) et appeler db.getInstance() si nécessaire. – wulfgarpro