Czy można przekazywać argumenty podczas ładowania modułu przy użyciu polecenia require?Podawanie argumentów wymagających (podczas ładowania modułu)
Mam moduł, login.js, który zapewnia funkcję logowania. Wymaga połączenia z bazą danych i chcę, aby to samo połączenie z bazą danych było używane we wszystkich moich modułach. Teraz wyeksportuję funkcję login.setDatabase (...), która pozwala mi określić połączenie z bazą danych, i to działa dobrze. Ale wolałbym przekazać bazę danych i inne wymagania podczas ładowania modułu.
var db = ...
var login = require("./login.js")(db);
Jestem całkiem nowy z NodeJS i zazwyczaj rozwijać przy użyciu języka Java oraz Spring Framework, więc tak ... to jest wtrysk konstruktor :) Czy można zrobić coś takiego kodu I podany powyżej?
Polecam również przejrzenie odpowiedzi na [to] (http://stackoverflow.com/questions/13080771/node-js-passing-variables) pytanie. Jak wskazano w mojej odpowiedzi, powszechnym idiomem jest przekazanie obiektu 'app' do wymaganych modułów. –
Zamiast robić cały ten argument przechodząc dla db, możesz użyć implementacji [singleton] (http://www.dofactory.com/javascript/singleton-design-pattern) i wywołać db.getInstance() w razie potrzeby. – wulfgarpro