Skip to content

Unterschiede zwischen Node.js und dem Browser

Sowohl der Browser als auch Node.js verwenden JavaScript als ihre Programmiersprache. Das Erstellen von Anwendungen, die im Browser laufen, ist völlig anders als das Erstellen einer Node.js-Anwendung. Trotz der Tatsache, dass es sich immer um JavaScript handelt, gibt es einige wesentliche Unterschiede, die die Erfahrung radikal verändern.

Aus der Perspektive eines Frontend-Entwicklers, der JavaScript intensiv nutzt, bieten Node.js-Anwendungen einen großen Vorteil: den Komfort, alles – das Frontend und das Backend – in einer einzigen Sprache zu programmieren.

Sie haben eine riesige Chance, denn wir wissen, wie schwer es ist, eine Programmiersprache vollständig und tiefgreifend zu lernen, und indem Sie dieselbe Sprache verwenden, um all Ihre Arbeit im Web zu erledigen – sowohl auf dem Client als auch auf dem Server –, befinden Sie sich in einer einzigartigen vorteilhaften Position.

TIP

Was sich ändert, ist das Ökosystem.

Im Browser interagieren Sie meistens mit dem DOM oder anderen Web Platform APIs wie Cookies. Diese existieren in Node.js natürlich nicht. Sie haben nicht das document, window und all die anderen Objekte, die vom Browser bereitgestellt werden.

Und im Browser haben wir nicht all die netten APIs, die Node.js über seine Module bereitstellt, wie zum Beispiel die Funktionalität für den Dateisystemzugriff.

Ein weiterer großer Unterschied ist, dass Sie in Node.js die Umgebung kontrollieren. Sofern Sie keine Open-Source-Anwendung entwickeln, die jeder überall bereitstellen kann, wissen Sie, mit welcher Version von Node.js Sie die Anwendung ausführen werden. Im Vergleich zur Browserumgebung, in der Sie nicht den Luxus haben, zu wählen, welchen Browser Ihre Besucher verwenden, ist dies sehr praktisch.

Dies bedeutet, dass Sie das gesamte moderne ES2015+-JavaScript schreiben können, das Ihre Node.js-Version unterstützt. Da sich JavaScript so schnell weiterentwickelt, Browser jedoch etwas langsam beim Upgrade sein können, sind Sie im Web manchmal auf die Verwendung älterer JavaScript-/ECMAScript-Releases beschränkt. Sie können Babel verwenden, um Ihren Code in ES5-kompatibel zu transformieren, bevor Sie ihn an den Browser ausliefern, aber in Node.js benötigen Sie das nicht.

Ein weiterer Unterschied besteht darin, dass Node.js sowohl das CommonJS- als auch das ES-Modulsystem unterstützt (seit Node.js v12), während wir im Browser sehen, dass der ES-Module-Standard implementiert wird.

In der Praxis bedeutet dies, dass Sie sowohl require() als auch import in Node.js verwenden können, während Sie im Browser auf import beschränkt sind.