Abhängigkeitsinjektion ist ein Software-Design-Konzept, bei dem eine Komponente (Klasse, Modul etc.) ihre Abhängigkeiten von außen erhält anstatt sie selbst zu erstellen. Dies erleichtert das Testen und das Wechseln von Abhängigkeiten. Es ist ein spezifischer Form des Inversion of Control (IoC), bei dem die Kontrolle über die zu verwendenden Dienste an das System oder den Container übergeben wird.
In Node.js wird Abhängigkeitsinjektion häufig durch Module und die CommonJS `require` Funktion implementiert. Ein Modul definiert seine Abhängigkeiten durch Aufrufen von `require` und diese Abhängigkeiten werden vom Node.js Modulsystem bereitgestellt. Deshalb können diese Abhängigkeiten leicht durch andere Implementierungen ersetzt oder gemockt werden, z.B. für Tests.
Es gibt auch Bibliotheken und Frameworks, die speziell für Abhängigkeitsinjektion in Node.js entwickelt wurden und erweiterte Funktionen bereitstellen, z.B. automatische Auflösung von Abhängigkeiten durch Analyse des Codes oder Konfiguration. Einige Beispiele sind `awilix`, `inversifyjs` und `bottlejs`.