Nodejs-Tutorial Teil 1: Einleitung

Posted by in JavaScript, Nodejs

So, jetzt wage ich doch tatsächlich den Schritt und will mich mal am Reaktiven-Programmieren zu versuchen. Drauf gebracht hat mich das JavaMagazin mit immer neuen Artikeln über Event-getriebene Architekturen.

Ich hätte das ganze auch mit Scala oder Java gepaart mit zum Beispiel vert.x oder Akka implementieren können, aber das erschien mir jetzt doch nicht exotisch genug für einen Lerneffekt.

Da Nodejs in aller Munde ist und vollmundig verspricht, dass man damit

einfach schnelle, skalierbare Netzwerkapplikationen erstellen

kann,
habe ich mir das mal genauer angesehen und fand die Idee, alles in JavaScript zu implementieren interessant.

Nodejs-Hintergrund

Nur ein kurzer Absatz zu Nodejs, da ich nicht alles wiederholen will, was man anderswo auch nachlesen kann. Der Ansatz von Nodejs unterscheidet sich komplett von dem eines traditionellen Aufbaus einer Java-basierten Anwendung mit Apache/Tomcat/Relationaler-DB. Man hat zum Beispiel nur einen Thread, der jeden Request bearbeitet. Ganz ehrlich, am Anfang habe ich gedacht, dass kann nicht funktionieren. Denn die Last bei einem solchen Aufbau ist komplett auf einem Prozessor, was die Rechenpower von Multicore-Servern praktisch negieren würde. Außerdem könnte man mit einer rekursiven Funktion bei einem Request den ganzen Server lahmlegen bis die Berechnung fertig ist. Dem Problem des einen Threads kann man mit entsprechenden Modulen begegnen, die dann auch alle Prozessoren einer Maschine belegen können. Tatsächlich kann man Node auch für wirklich Rechenintensive Aufgaben verwenden wie dieser Blogbeitrag beweist.

Alles in allem spricht also nichts dagegen diese Technologie auch einzusetzen. Wie bei allem ist natürlich der Enwickler gefragt, den verwendeten Ansatz auch richtig umzusetzen 😉

Was geplant ist

Wer sich einen kleinen Überblick über Nodejs verschaffen will, der ist mit diesem Tutorial sehr gut beraten. Für mehr als nur Spielerei ist das aber nicht geeignet, denn für anspruchsvollere Aufgaben kann man zum Beispiel das Routing oder die Generierung von HTML nicht mehr von Hand stemmen.

Die Applikation die in diesem Tutorial entwickelt werden soll, soll eine einfache Loginmaske haben, bei der sich ein Benutzer anmelden kann. Später sollen sich dann noch weitere Benutzer registrieren können, eine Passwort-wiederherstellung über Email eingebaut und dem Benutzer eine Löschfunktion für seinen Account angeboten werden.

Als Technologiestack ist Folgendes geplant:
Nodejs
Express
Jade
MongoDB

Was im demnächst kommt

Im zweiten Teil dieses Tutorials wird das Projekt eingerichtet und konfiguriert, damit im dritten Teil mit der Entwicklung begonnen werden kann.