Das ultimative Node.js Einsteiger Tutorial

Das ultimative Node.js Einsteiger Tutorial

Dieses Tutorial ist für alle Entwickler, die mit Node.js programmieren möchten, aber noch kaum etwas über Node.js wissen. Dabei wird Node.js immer populärer und jeder Webentwickler sollte mindestens die Basics beherrschen. Nach diesem Tutorial kannst Du dich eindeutig zu dieser Gruppe zählen.

Damit Du einen roten Faden durch dieses Node.js Tutorial hast, habe ich Dir die Punkte mal zusammengefasst:

1. Was ist Node.js?

Mit Node.js hat die Skriptsprache JavaScript auch Einzug in die serverseitige Programmierung gehalten. Vor Node.js war JavaScript hauptsächlich nur das Frontend und die Interaktion mit dem Besucher zuständig. Mit Node.js lassen sich allerdings nun von kleinen CLI (Command Line) Tools bis hin zu komplexen Programmen und HTTP Servern entwickeln. Genau diese universelle Einsetzbarkeit macht Node.js für mich persönlich – und auch für viele andere Entwickler – so genial!

Wenn Du Dich nun fragst, ob Du Node.js wirklich brauchst und können willst, solltest Du Dir die am häufig gestelltesten Fragen weiter unten durchlesen und entscheiden, ob Node.js die richtige Technologie für Dich ist.

Ein weiterer wichtiger Grund für den Erfolg sind die Bordmittel, die mit Node.js ein herkommen. Von Grund auf hat Node.js bereits viele Funktionen und Module die man einfach benutzen kann. Und um das System noch perfekt zu machen, gibt es den Paketmanager – auch npm (Node Package Manager) – genannt. Mehr Informationen dazu findest Du später unter dem Punkt Node.js Module. Jedenfalls ist es damit kinderleicht neue Funktionen, quasi Erweiterungen von anderen Entwicklern hinzuzufügen.

Das hört sich natürlich erstmal viel versprechend an, aber kannst Du Dir darunter auch schon etwas konkretes vorstellen? Vermutlich eher nicht. Zumindest würde es mir nicht sonderlich leicht fallen, wenn ich so etwas zu einem mir unbekannten Thema lesen würde. Deshalb lies diesen Abschnitt am besten am Ende dieses Beitrags noch einmal und ich versichere Dir, Du wirst wissen, wovon ich rede! 😉

2. Node.js installieren

Bevor wir anschließend mit der eigentlichen Programmierung beginnen können, müssen wir zuerst Node.js auf unserem Rechner installieren. Dazu wähle nun Dein Betriebssystem aus, auf dem Du entwickeln möchtest. Windows oder Mac..?

2.1 Windows

Unter Windows kannst Du Dir einfach den Installer herunterladen und der Installationsanleitung folgen. Lade am besten die LTS (Long-term support) Version herunter, da diese bereits etabliert ist und weniger Bugs hat, als die neuste Version.

Windows Installer

2.2 Mac

Auf dem Mac kannst Du genau wie bei Windows den offiziellen Installer herunterladen und der Installationsanleitung folgen. Lade auch hier am besten die LTS (Long-term support) Version herunter, da diese bereits etabliert ist und weniger Bugs hat, als die neuste Version.

Mac Installer

2.3 Plesk (Hosting)

Wenn Du Deine Domains mit Plesk verwaltest und deine App dort hosten möchtest, benötigst Du lediglich die Node.js Erweiterung, die Du durch einen einfachen Klick herunterladen kannst.

Plesk Oberfläche - Node.js Installation

Zum Entwickeln solltest Du allerdings lokal auf deinem Mac oder Windows Rechner arbeiten. Wenn Deine App fertig ist und Du sie deployen (live stellen) möchtest, kannst Du diese Anleitung zur Hilfe nehmen.

3. CLI

CLI steht für Command-Line Interface und bedeutet Kommandozeile. Auf dem Mac kannst Du hierfür das vorinstallierte Programm „Terminal“ benutzen und unter Windows die Eingabeaufforderung (cmd.exe).

Windows cmd.exe

Hiermit können wir Node.js „steuern“. Über den Befehl node können wir nun beliebige JavaScript Befehle ausführen. Im weiteren Verlauf dieses Beitrags weißt Du nun, was Du unter der CLI verstehen kannst.

4. Node.js Module

Die Kronjuwelen von Node.js sind dessen Module. Am Anfang habe ich ja bereits angesprochen, dass Node.js einen Package Manager besitzt. Die Abkürzung und der Befehl für die CLI lautet npm (Node Package Manager).

NPM ist ein gigantisches Netzwerk aus Development Tools, die man sich kostenfrei für seine Anwendung herunterladen kann. Wenn Du mit Node.js arbeitest, wirst Du feststellen, dass Du immer wieder auf Module anderer Entwickler zurückgreifen musst. Man muss das Rad nicht immer neu erfinden.

Im diesem Beispiel laden wir das Modul express herunter:

npm install express

Man kann auch Module global installieren, das bedeutet, es gilt auf deinem kompletten Rechner und ist nicht nur in einem Projekt verfügbar. Dazu hängst Du einfach den Parameter -g an.

npm install -g express

Wenn man ein Modul installiert, wird automatisch der Ordner node_modules angelegt. Darin sind alle installierten Module enthalten und kann im Normalfall von Dir ignoriert werden. Ein Modul können wir im Code später so einbinden:

const express = require('express');

5. Erstes Projekt

5.1 Projekt erstellen

Es ist soweit, wir beginnen nun endlich mit dem Programmieren. Um ein Node.js Projekt zu erstellen, legen wir einfach einen normalen Ordner in einem beliebigen Verzeichnis an. Darin erstellen wir eine index.js, welche unsere Startdatei darstellt.

Node.js Ordnerstruktur

5.2 Node.js App initialisieren

Nun müssen wir in diesem Ordner sagen, dass wir daraus eine Node.js App machen wollen, das tun wir über diesen Befehl:

npm init

Dabei werden wir nach verschiedenen Parametern, wie package name, version und description gefragt. Diese Felder kannst Du ausfüllen oder wie ich einfach auf Standardeinstellungen belassen. Diese Einstellungen können wir später jederzeit anpassen.

npm init

5.3 package.json kennenlernen

In unserem Ordner wurde nun eine package.json Datei angelegt. In dieser Datei werden alle Informationen über den Autor, Version und am wichtigsten, über alle installierten Abhängigkeiten (Module) gespeichert.

// package.json

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

5.4 Programmcode schreiben

Nun können wir in unserer index.js den ersten JavaScript Code schreiben. Da können wir natürlich nicht darauf verzichten und müssen „Hello World“ ausgeben.

// index.js

console.log('Hello World');

5.5 Anwendung testen

Der erste Code ist geschrieben und wir wollen unser Programm starten. Das machen wir über diesen Befehl:

node index.js

Wir erhalten folgendes Ergebnis, cool! 🥳

Node Hello World

6. Automatische App Neustarts (Nodemon)

Es ist doch wirklich nervig, wenn wir nach jeder kleinen Änderung am Code unsere Node.js App manuell neu starten müssen, oder? Richtig, deshalb gibt es das Modul nodemon, welches wir global installieren. Dieses Modul erkennt Dateiänderungen und startet die Node.js App binnen Millisekunden neu. Dadurch wird unser Workflow enorm verschnellert.

npm install -g nodemon

Nach der Installation starten wir Nodemon über diesen Befehl und direkt wird unsere App gestartet und bei Änderungen automatisch neu gestartet.

nodemon index.js

Wenn Du nun deine Datein innerhalb des Projektordners speicherst, wird die Node.js App automatisch neu gestartet.

Nodemon Beispiel

7. Ausgaben im Browser

Nun wollen wir bereits unseren ersten kleinen Webserver Server aufsetzen, um im Browser Inhalte ausliefern zu können. Dazu installieren wir uns das Modul express über folgenden Befehl:

npm install express

Und unsere index.js passen wir so an:

// index.js

const express = require('express');
const app = express();

app.get('/', (request, response) => {
  response.send('Our first Node.js webserver');
});

app.listen(3000, () => console.log('Server running on port 3000'));

Damit Du alles verstehst, hier eine Erklärung Zeile für Zeile:

Zeile 3Einbinden des express Moduls.
Zeile 4Initialisierung des express Moduls in der Variable app.
Zeile 6Wir fangen den Seitenaufruf von / unseres Servers ab, um eine Aktion ausführen zu können.
Zeile 7Wir senden dem Anfragenden den Text „Our first Node.js webserver“ als Antwort zurück.
Zeile 9Wir starten unseren Webserver auf dem Port 3000 und geben eine Meldung in der Konsole aus.

Wenn wir um Browser nun unseren Rechner auf dem Port 3000 anfragen, bekommen wir dieses Ergebnis:

Browserfenster Node.js Example

Simpel, oder? Deshalb ist Node.js so genial. Man benötigt gerade einmal sieben Zeilen Code für seinen eigenen Webserver.

Wenn wir unsere Route nun ein kleines bisschen anpassen, können wir bereits übergebene Daten zurückliefern:

// index.js

const express = require('express');
const app = express();

app.get('/:yourName', (req, res) => {
  res.send('Your name: ' + req.params.yourName);
});

app.listen(3000, () => console.log('Server running on port 3000'));

Hier steht :yourName für einen Variablen String, den wir in unserer URL übergeben können und mit req.params.yourName können wir ihn auslesen und senden den Namen wieder an den Benutzer zurück.

Wenn wir nun http://localhost:3000/test aufrufen, erhalten wir den String mit dem übergebenen Namen als Antwort. Damit kannst Du jetzt schon Daten auslesen und versenden und das mit wirklich wenig Code.

8. Häufig gestellte Fragen

Wann verwende ich Node.js?

Node.js wird primär für „normale“ dynamische Websites und Backend APIs (RestAPIs) verwendet. Außerdem wird Node.js häufig bei Anwendungen eingesetzt, die Daten in Echtzeit verarbeiten sollen (z.B. Chats).

Ist Node.js eine Programmiersprache?

Definitiv Nein. Node.js verbindet die Skriptsprache JavaScript und eine Netzwerkkomponente. Da Node.js auf der Google V8 JavaScript Engine entwickelt wurde, beherrscht Node.js Grundlagen der Netzwerktechnik wie die Protkolle HTTP, DNS und TCP.

Ist es einfach Node.js zu erlernen?

Da Node.js kein Framework und keine Programmiersprache ist, muss man sich eher die Frage stellen, ob es einfach ist, JavaScript zu lernen. Dabei haben Umfragen ergeben, dass JavaScript eine der am einfachsten zu erlernenden Skriptsprachen ist.

Was ist eine Middleware?

Eine Middleware ist ein Teilprogramm, also eine Funktion, die zwischen zwei Komponenten ausgeführt wird. Beispielsweise wenn der Benutzer /settings aufruft, soll der eigentliche Programmcode nur ausgeführt werden, wenn der Benutzer angemeldet ist. Dazu schreibt man eine Middleware Funktion und ruft diese Funktion davor auf. Das tut man, damit man den gleichen Code (Überprüfen des Logins) mehrfach verwenden kann, ihn aber nur einmal schreiben muss.

Wie und wo kann ich eine Node.js App hosten?

Node.js Apps kannst Du z.B. kostenlos bei Heroku hosten. Wenn Du allerdings einen eigenen Server hast, kannst Du in Plesk kostenlos Deine eigene Node.js App hosten, dazu habe ich hier eine komplette Anleitung erstellt.

Was macht die package.json?

Die package.json beinhaltet bei Node.js Apps Informationen über den Namen, den Autor, uvm. Am wichtigsten sind hier die dependencies. Dies ist eine Liste der Module (Abhängigkeiten) die Deine App verwendet. Außerdem kannst Du unter scripts Kommandos definieren, um Deine App auszuführen oder zu testen.

Was macht der node_modules Ordner?

Der node_modules Ordner enthält alle Module, die in deiner Node.js eingebunden sind. Darin sind unter anderem Standardmodule, aber auch alle Module die Du zusätzlich installiert hast und in der package.json unter scripts gelistet sind. Den node_modules Ordner brauchst Du nicht in Dein Git-Repository oder zum Live Hosting zu pushen, da durch den Befehl npm install alle Module erneut in den Ordner heruntergeladen werden.

Fazit

Puuh! Ganz schön viele Informationen auf einmal, nicht wahr? Trotzdem hoffe ich, dass Du einen guten Eindruck davon bekommen hast, was mit Node.js alles möglich ist und ich Dich neugierig auf mehr gemacht habe. Wenn dem so ist, kannst Du Dich gerne weiter auf dieser Seite umschauen und noch mehr spannende Beiträge rund um die Webentwicklung lesen. Ungeklärte Fragen kannst Du gerne in die Kommentare schreiben! 🙂

Beteilige dich an der Unterhaltung

3 Kommentare

  1. Guten Tag, danke für den guten Beschrieb.
    Beim Befehl npm init zum installieren, kommen folgende Fehlermeldungen (schicke gerne ein Bild, damit übersichtlicher). Können Sie mir bitte weiter helfen?

    Is this OK? (yes) yes
    npm ERR! code EPERM
    npm ERR! syscall open
    npm ERR! path C:\Programme\nodejs\node_app\package.json
    npm ERR! errno -4048
    npm ERR! Error: EPERM: operation not permitted, open ‚C:\Programme\nodejs\node_app\package.json‘
    npm ERR! [Error: EPERM: operation not permitted, open ‚C:\Programme\nodejs\node_app\package.json‘] {
    npm ERR! stack: „Error: EPERM: operation not permitted, open ‚C:\\Programme\\nodejs\\node_app\\package.json'“,
    npm ERR! errno: -4048,
    npm ERR! code: ‚EPERM‘,
    npm ERR! syscall: ‚open‘,
    npm ERR! path: ‚C:\\Programme\\nodejs\\node_app\\package.json‘
    npm ERR! }
    npm ERR!
    npm ERR! The operation was rejected by your operating system.
    npm ERR! It’s possible that the file was already in use (by a text editor or antivirus),
    npm ERR! or that you lack permissions to access it.
    npm ERR!
    npm ERR! If you believe this might be a permissions issue, please double-check the
    npm ERR! permissions of the file and its containing directories, or try running
    npm ERR! the command again as root/Administrator.
    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\schmi\AppData\Roaming\npm-cache\_logs\2020-02-01T20_05_54_158Z-debug.log

    1. Hallo!
      Auf den ersten Blick sieht es so aus, als würden irgendwelche Berechtigungen nicht stimmen? Vielleicht mal versuchen, die CMD mit Administratorrechten auszuführen. Außerdem kann die Logdatei unter C:\Users\schmi\AppData\Roaming\npm-cache\_logs\2020-02-01T20_05_54_158Z-debug.log vielleicht weitere Hinweise liefern.

      LG LH

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.