To me, this seems to be one of the biggest unaddressed issues of the JS community. There are no best practices around dependency management and dependency injection around (at least to my knowledge).
There is a long discussion on this thread: Do I need dependency injection in NodeJS, or how to deal with ...?, but most of the solutions seem to work for specific cases only, and require changing the way you write modules somehow. And most shocking is that many answers argue that you don't even need DI.
My own solution for the issue is this minimal DI framework, which lets you define modules once, and it will wire them up for you with proper dependencies.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…