È possibile passare argomenti quando si carica un modulo utilizzando require?Passare argomenti da richiedere (durante il caricamento del modulo)
Ho un modulo, login.js che fornisce funzionalità di accesso. Richiede una connessione al database e voglio che la stessa connessione al database sia utilizzata in tutti i miei moduli. Ora esporto una funzione login.setDatabase (...) che mi consente di specificare una connessione al database e che funziona bene. Ma preferirei passare il database e qualsiasi altro requisito quando carico il modulo.
var db = ...
var login = require("./login.js")(db);
io sono abbastanza nuovo con NodeJS e di solito si sviluppano utilizzando Java e Spring Framework, quindi sì ... questa è un'iniezione costruttore :) E 'possibile fare qualcosa di simile al codice che ho fornito sopra?
Vorrei anche dare un'occhiata alle risposte a [questo] (http://stackoverflow.com/questions/13080771/node-js-passing-variables) domanda. Come indicato nella mia risposta, un idioma comune è passare l'oggetto 'app' ai moduli richiesti. –
Invece di fare tutto questo argomento passando per db, potresti usare un'implementazione [singleton] (http://www.dofactory.com/javascript/singleton-design-pattern) e chiamare db.getInstance() dove necessario. – wulfgarpro