Node.js-Anwendungen verwalten und deployen
Eine Node.js-Anwendung starten
- mStudio UI
- CLI
- API
Um eine Node.js-Anwendung über die mStudio-Oberfläche zu starten, folge diesen Schritten:
- Navigiere zum Projekt, in dem du die Anwendung erstellen möchtest.
- Wähle im Seitenmenü den Punkt "Apps" aus.
- Klicke auf den Button "App erstellen" und wähle "Benutzerdefinierte Node.js-App" aus.
- Wähle im Installations-Assistenten den Eintrittspunkt-Befehl aus, der verwendet werden soll, um deine Anwendung zu starten, und schließe den Assistenten ab.
Nach Abschluss der Installation, achte auf das Installationsverzeichnis, das in der UI angezeigt wird.
Um eine Node.js-Anwendung über die CLI zu starten, führe den folgenden Befehl aus:
$ mw app create node --wait --entrypoint "npm start"
Das --wait
-Flag sorgt dafür, dass die CLI wartet, bis die Installation abgeschlossen ist. Das --entrypoint
-Flag enthält den Befehl, der verwendet werden soll, um deine Anwendung tatsächlich zu starten. Falls er weggelassen wird, wird der Standardwert yarn start
verwendet.
Nachdem die Installation abgeschlossen wurde, verwende das mw app get
-Kommando, um das Installationsverzeichnis zu ermitteln.
Um zu erfahren, wie man eine Node.js-Anwendung über die API bereitstellt, lies den Artikel "Eine Node.js-Anwendung starten".
Deine Anwendung bereitstellen
Nachdem du deine Node.js-Anwendung erstellt hast, kannst du deinen Code deployen, indem du ihn in das dafür vorgesehene Installationsverzeichnis hochlädst. Um deinen Code bereitzustellen, kannst du die Methode wählen, die zu bevorzugst, wie beispielsweise ein lokal ausgeführter Git-Klon, rsync oder SFTP.
Für mehr Informationen, wie du deinen Code am besten bereitstellen kannst, wirf einen Blick auf unsere Sammlung von Deployment-Anleitungen.
Deine Anwendung über HTTP zugänglich machen
Wirf einen Blick auf unseren Leitfaden zum Betrieb von Webservern, um zu erfahren, wie du deine Node.js-Anwendung über HTTP zugänglich machen kannst.
Das Verwalten Deines Prozesslebenszyklus
Wirf einen Blick auf unseren Leitfaden zum Betrieb von Webservern, um zu erfahren, wie du den Prozesslebenszyklus deiner Node.js-Anwendung verwalten kannst.
Beispielanwendungen
Express.js
Der folgende Code-Schnipsel zeigt ein minimales Beispiel einer Express-Anwendung, die auf dem Port lauscht, der in der Umgebungsvariable PORT
angegebenen ist:
const express = require("express");
const app = express();
const port = parseInt(process.env.PORT, 10) || 3000;
app.get("/", (req, res) => {
res.send("Hello World!");
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
PM2 mit Live-Reloading
Um fortgeschrittene Funktionen wie einen automatischen Neustart bei Code-Änderungen (nützlich für die Entwicklung) oder Clustering (wenn du alle verfügbaren CPU-Kerne nutzen möchtest) zu aktivieren, kannst du den PM2 Prozessmanager verwenden.
Hierzu musst du eine Node.js-Anwendung mit pm2
als Einstiegspunkt erstellen (oder alternativ pm2 start ecosystem.config.js --no-daemon
als start
-Skript in deiner package.json
-Datei konfigurieren):
$ mw app create node --wait --entrypoint "pm2 start ecosystem.config.js --no-daemon"
Weiterhin musst du PM2 in deiner Anwendungsumgebung installiert haben. Du kannst es über NPM installieren:
$ npm install -g pm2
Erstelle als nächstes eine ecosystem-Konfigurationsdatei ecosystem.config.js
in deinem Anwendungsverzeichnis:
module.exports = {
apps: [
{
name: "test-app",
script: "src/server.js",
watch: ["src"],
},
],
};
In diesem Beispiel wird PM2 das src/server.js
-Skript als Hauptanwendung starten und das src
-Verzeichnis auf Änderungen überwachen. Wenn Änderungen erkannt werden, wird PM2 die Anwendung automatisch neu starten. Weitere Informationen findest du in der PM2-Dokumentationsreferenz.
Yarn Plug'n'Play benutzen
Wenn dein Projekt Yarn PnP nutzt, ist es empfehlenswert den global cache zu deaktivieren.
enableGlobalCache: false
Umgebungsvariablen
In der Regel werden Umgebungsvariablen genutzt, um Node.js-Apps zu konfigurieren. Je nach Node.js-Version empfehlen wir unterschiedliche Varianten, um diese zu definieren.
- < Node.js 20.6
- >= Node.js 20.6
Du kannst Umgebungsvariablen in der Datei ~/.config/node/.env
definieren. Dort definierte Variablen sind dann automatisch in deiner App verfügbar.
Ab Node.js 20.6 steht ein (experimentelles) Flag --env-file
zur Verfügung (vgl. Node.js-Dokumentation). Dieses kann beliebig oft angegeben werden, um .env-Dateien zu laden, deren Umgebungsvariablen dann in der App verfügbar sind.
Um das Flag zu nutzen, konfiguriere den Startbefehl deiner Node.js-App beispielsweise folgendermaßen:
node --env-file=.env server.js
Der Pfad zur .env
-Datei wird dabei relativ zum Working Directory angegeben.
Nutzt du ein npm- oder yarn-Script zum Start deiner App, gilt folgendes Beispiel:
{
[..]
"scripts": {
"start": "node --env-file=.env server.js"
}
[..]
}