NodeJS: Entwicklung, Serverkonfiguration

15. Dezember 2020

Lang: cs en de es

JavaScript ist auch auf dem Vormarsch bei der Entwicklung des Backends von Webanwendungen, die auf dem Server mit der Technologie NodeJS laufen. Wie kann man mit der Entwicklung von NodeJS-Anwendungen beginnen? Wie bereitet man einen Server für die Ausführung von NodeJS-Anwendungen vor? Finden Sie heraus, in diesem Tutorial.

JavaScript ist eine Skriptsprache, die in erster Linie auf dem Frontend verwendet wurde - sie wird im Webbrowser des Benutzers ausgeführt. Mit der technologischen Entwicklung wurde schließlich unbeabsichtigt die Möglichkeit geschaffen, JavaScript im Backend auszuführen - die NodeJS.

NodeJS-Installation

Zusätzlich zu NodeJS müssen Sie noch Folgendes installieren NPM, ein in JavaScript entwickeltes Tool zur Verwaltung von Paketen und Bibliotheken. Wenn Sie die Mageia-Distribution verwenden, können Sie es mit dem folgenden Befehl installieren.

urpmi nodejs npm
Bei debian-ähnlichen Distributionen können Sie NodeJS und NPM mit dem folgenden Befehl installieren:
apt-get install nodejs npm
Wenn Sie sich fragen, welche Version von NodeJS Sie installiert haben, können Sie dies mit folgendem Befehl herausfinden:
node -v

Programmcode:

const http = require('http');

const hostname = '0.0.0.0';
const port = 3000;
console.log(process.env);

const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World!\n');
});

server.listen(port, hostname, () => {
console.log(`Server läuft unter http://${hostname}:${port}/`);
});
Starten der Anwendung:
node hello.js
Sobald nodeJS gestartet ist, ist die Anwendung im Webbrowser verfügbar unter: http://0.0.0.0:3000/ Der Quellcode für die Beispiel-NodeJS-Anwendung befindet sich auf GitHub.

NodeJS Docker

Der einfachste Weg, NodeJS in Docker zum Laufen zu bringen, ist die Verwendung des offiziellen Docker-Image NodeJS von Docker Hub - diese NodeJS-Images können ohne Modifikation verwendet werden. Hier gibt es eine ausführliche Anleitung zum Betrieb von NodeJS in einem Docker-Container.

Um es auszuprobieren, können Sie direkt durch meine vorbereitete NodeJS-Docker-Beispiel.

Starten Sie den Docker-Container und zeigen Sie die Anwendung an:

docker-compose up
Manuelles Erstellen des Containers und manuelles Starten der Anwendung:
docker build -t nodex .
docker run -rm -p 49160:3000 nodex
Die Anwendung ist dann unter der folgenden URL verfügbar: http://localhost:49160/

NodeJS Video-Tutorial

Wie kann man NodeJS zum Laufen bringen? Sie können NodeJS nativ auf Ihrem System installieren oder Docker verwenden. Hier finden Sie ein Video-Tutorial, wie Sie Ihre Anwendungsentwicklungsumgebung mit NodeJS einrichten. Und wie Sie Ihr erstes Programm (hello world) in NodeJS erstellen.

NodeJS auf dem Server

Nachdem Sie eine NodeJS-Anwendung entwickelt haben, werden Sie sie wahrscheinlich auf dem Server als Daemon=still laufendes Programm, das automatisch startet, wenn der Server startet.
In einem modernen Linux-basierten Betriebssystem können Sie dazu verschiedene Tools verwenden systemd. Eine andere Möglichkeit ist zum Beispiel PM2, ein in NodeJS programmierter Prozess-/Anwendungsmanager.

PM2

PM2 sorgt dafür, dass das NodeJS-Skript beim Start des Betriebssystems im Hintergrund ausgeführt wird und hält es am Leben. Es überwacht die Ausführung und startet sie neu, wenn sie aus irgendeinem Grund abstürzt. Es startet Skripte automatisch beim Systemstart und kann vordefinierte Skripte einmalig ausführen.

Zur Installation verwenden Sie den Befehl:

npm install pm2@latest -g
Hier ist ein detailliertes Beispiel, wie man PM2 einrichten

Systemd

Hier ist ein detailliertes Beispiel, wie man eine NodeJS-Anwendung mit systemd startet.

Erstellen Sie eine /lib/systemd/system/nodej-service.service Datei mit der folgenden Konfiguration zum Ausführen einer NodeJS-Anwendung:

[Unit]
Description=NodeJS
Nach=Netzwerk.Ziel

[Dienst]
Type=einfach
#ExecStart=/usr/bin/node /srv/node/hello.js
ExecStart=/usr/bin/npm run start --prefix /root/CloudProxy
Restart=always
#Restart=bei Ausfall

[Installieren]
WantedBy=multi-user.target
Mit den folgenden Befehlen wird die Konfiguration neu geladen und die NodeJS-Anwendung im Hintergrund (als Daemon) ausgeführt:
systemctl daemon-reload
service nodejs-service start

Natürlich ist es gut, wenn man diese Konfiguration mit einem Tool wie ansible vornimmt, denn dann ist man in der Lage, diese Aufgaben zu automatisieren und effizienter zu gestalten, was typischerweise jeder gute Linux-Administrator ein solches Werkzeug benutzt. Denn wenn Sie eine NodeJS-Anwendung für Ihr Unternehmen nutzen wollen, sollten Sie delegieren Installation eines Linux-Servers zur Ausführung einer NodeJS Anwendung an einen Server-Profi delegieren.

TypeScript

JavaScript ist trotz der Modernisierung keine sehr gute Skriptsprache, weshalb wir heute oft auf TypeScript Mehr über TypeScript auf der offiziellen englischen Seite.

Artikel zu einem ähnlichen Thema

Python-Programm zur Steuerung von Docker über die API
Wie man MailCatcher zum Testen von E-Mails verwendet
Python OpenAI API
Erstellen einer WebSocket-Webanwendung und Einrichten eines Proxys
Projektmanagement: agile Softwareentwicklung
Wie man alte PHP-Anwendungen ausführt
Was ein guter Programmierer wissen sollte
Programmiersprache Rust
Nette Sicherheitslücke CVE-2020-15227
REST API: Plattform-API
Kundenspezifisches Web- und E-Mail-Hosting mit ISP Config-Software
Programmierung in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: sicheres Web
NoSQL-Datenbank Mongo DB
Herstellen einer Verbindung zu Microsoft SQL Server unter Linux
Was ist die Stellenbeschreibung eines Programmierers?
Lokalisierung von Python-Anwendungen
Welches Mail- und Webhosting Sie wählen sollten
Digispark - Atmel ATtiny Mikrocontroller mit Arduino IDE programmieren
Entwicklung für ARM-Prozessoren mit Arduino IDE
Wie programmiere ich den ESP8266 WiFi-Prozessor?
Offenes Smartphone mit Linux - Openmoko Neo FreeRunner

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+