Nicht-blockierender E/A (auch als asynchroner E/A bekannt) ist ein Kernkonzept in Node.js. Es bedeutet, dass E/A-Operationen, wie das Lesen aus dem Netzwerk, Zugreifen auf die Datenbank oder das Dateisystem, im Hintergrund ausgeführt werden können, während der Code weiterläuft.
Im herkömmlichen synchronen (blockierenden) Coding-Modell stoppt der Code während einer E/A-Operation und wartet, bis sie abgeschlossen ist, bevor er weitermacht. Im nicht-blockierenden Modell dagegen wird eine Rückruffunktion (callback function) verwendet, die aufgerufen wird, wenn die E/A-Operation abgeschlossen ist.
Dies erlaubt es Node.js, einen hohen Durchsatz zu erreichen, da es während der Wartezeit auf E/A-Operationen weiterhin anderen Code ausführen kann. Dies ist besonders nützlich für Anwendungen mit vielen gleichzeitigen Benutzern oder für Echtzeitanwendungen.