Zum Hauptinhalt springen

Node.js

Einführung

Node.js ist eine Serverplattform, auf der in JavaScript geschriebene Anwendungen ausgeführt werden.

Zuerst müssen Sie Node.js installieren:

  • Gehen Sie zu "Einstellungen" -> "Anwendungen"

Menü zur Verwaltung von Anwendungen in FASTPANEL

  • Klicken Sie bei der erforderlichen Node.js-Version auf die Schaltfläche "Installieren"

Node.js-Version in FASTPANEL installieren

Erstellen Sie eine Website:

  • Wählen Sie eine Vorlage für eine Node.js-Website aus

Neue Website-Konfiguration in FASTPANEL

  • Geben Sie die Domain und die zugehörigen Parameter an. In der Konfigurationsphase können Sie die DB, den FTP-Benutzer und das Backend ändern

Neue Website-Konfiguration in FASTPANEL

  • Laden Sie die Anwendungsdateien in das Website-Verzeichnis hoch
  • Um Abhängigkeiten zu installieren, führen Sie npm20.15.1 install im Terminal aus (die Anwendung ttyd muss für FASTPANEL® installiert sein)

Node.js-Abhängigkeiten installieren

  • Starten Sie Node.js neu, indem Sie zum Website-Dashboard gehen und dann den Abschnitt "Dienste" öffnen.

Node.js-Dienst neu starten

Express-Framework

Erstellen wir am Beispiel des Express-Frameworks einen einfachen Webserver:

  • Stellen Sie per SSH eine Verbindung zum Server als der Benutzer her, dem die Website gehört (Sie können die Anwendung ttyd für FASTPANEL® verwenden)
  • Erstellen Sie im Website-Verzeichnis eine Datei app.js und füllen Sie sie mit dem folgenden Code:
const express = require('express');
const app = express();
const PORT = process.env.SERVICE_PORT;

app.get('/', (req, res) => {
res.send('Hello! This is my first server on Node.js + Express 🚀');
});

app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});

  • Führen Sie im Website-Verzeichnis den Befehl zur Installation von express aus
npm20.15.1 install express
  • Gehen Sie zum Website-Dashboard und dann zum Abschnitt Dienste
  • Starten Sie den Dienst neu
  • Überprüfen Sie die Website

Docusaurus

Konfigurieren wir die Einstellungen am Beispiel der Docusaurus-Webanwendung:

  • Stellen Sie per SSH eine Verbindung zum Server als der Benutzer her, dem die Website gehört (Sie können die Anwendung ttyd für FASTPANEL® verwenden)
  • Führen Sie im Website-Verzeichnis die Docusaurus-Installation aus
npx20.15.1 create-docusaurus -j ./docs
  • Wenn Sie aufgefordert werden, eine Vorlage auszuwählen, antworten Sie mit classic (recommended)

  • Ersetzen Sie nach der Installation eine Zeile in der Datei docs/package.json

"start": "docusaurus start",
# replace with
"start": "docusaurus start --port $SERVICE_PORT",

$SERVICE_PORT ist eine in FASTPANEL® gesetzte Systemvariable

  • Gehen Sie in der Systemsteuerung zu "Website-Einstellungen" -> "Backend"

  • Wählen Sie den Handler Standalone oder PM2 aus.

  • Wählen Sie die gewünschte Node.js-Version aus.

  • Geben Sie den Arbeitsordner docs an

  • Geben Sie im Feld Startbefehl Folgendes ein: npm run start

  • Speichern. Warten Sie, bis die Anwendung kompiliert ist (Informationen werden in den Logs angezeigt). Überprüfen Sie die Website

Next.js

Am Beispiel von Next.js mit Node.js 20.19 erstellen wir einen einfachen Webserver:

  • Stellen Sie per SSH eine Verbindung zum Server als der Benutzer her, dem die Website gehört (Sie können auch die Anwendung ttyd in FASTPANEL® verwenden).
  • Führen Sie im Website-Verzeichnis den Befehl zur Projektinitialisierung aus:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • Fügen Sie der Datei package.json einen Block scripts hinzu:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • Erstellen Sie ein Verzeichnis pages und fügen Sie darin eine Datei mit dem Namen index.js hinzu:
mkdir pages
cat <<EOF > pages/index.js
export async function getServerSideProps() {
return {
props: {
nodeVersion: process.version,
port: process.env.SERVICE_PORT || 3000,
},
};
}

export default function Home({ nodeVersion, port }) {
return (
<div style={{
fontFamily: 'sans-serif',
textAlign: 'center',
marginTop: '20vh'
}}>
<h1>✅ It works!</h1>
<p>Next.js app running on Node.js {nodeVersion}</p>
<p>Port: {port}</p>
</div>
);
}
EOF
  • Führen Sie den Projekt-Build aus.
yarn20.19.4 build
  • Gehen Sie in der Systemsteuerung zu "Website-Einstellungen" -> "Backend"
  • Wählen Sie den Handler Standalone oder PM2 aus.
  • Wählen Sie die gewünschte Node.js-Version aus.
  • Geben Sie im Feld Startbefehl Folgendes ein: yarn run start.
  • Speichern. Warten Sie, bis die Anwendung kompiliert ist (Informationen werden in den Logs angezeigt). Überprüfen Sie die Website

Zusätzliche Informationen

Im Modus Standalone wird ein Node.js-Prozess gestartet, um Ihre Skripte auszuführen.

Im Modus PM2 wird der Prozessmanager PM2 verwendet, um Node.js-Prozesse, Logs und die Systemlast zu verwalten.
In diesem Modus können Sie außerdem die Anzahl der Worker angeben — also die Anzahl der Node.js-Prozesse, die eingehende Anfragen an den Server verarbeiten.
Zusätzlich bietet dieser Modus die Option Dateiüberwachung aktivieren — PM2 startet Ihre Anwendung automatisch neu, wenn eine Datei im aktuellen Verzeichnis oder in dessen Unterverzeichnissen geändert wird. Bitte beachten Sie, dass dieser Modus zusätzliche Systemlast verursacht und für Produktionsumgebungen nicht empfohlen wird.

Auf ähnliche Weise können Sie die Anwendung konfigurieren, wenn sie YARN statt NPM erfordert

Sie können die in package.json aufgeführten Abhängigkeiten Ihres Projekts direkt in FASTPANEL® mit YARN oder NPM installieren. Öffnen Sie dazu die Website-Karte und gehen Sie zum Abschnitt Dienste:

Node.js-Dienste

Protokolle

Eine Node.js-Anwendung kann Logs erzeugen. In FASTPANEL® befinden sie sich im Website-Dashboard im Abschnitt Logs unter der Registerkarte "Backend-Log"

Konsolenbefehle

Nach der Installation von Node.js in FASTPANEL® können Benutzer mit ihren Projekten mithilfe von Konsolenbefehlen wie den folgenden arbeiten:

  • pm2
  • yarn20.15.1
  • npx20.15.1
  • npm20.15.1
  • node20.15.1

Beispiel:

$ npm20.15.1 list
node-socket-port-server@1.0.0 /var/www/node_user/data/www/node.site
└── express@4.21.2
$ pm2 ls
┌────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ amazing_site│ default │ 1.0.0 │ cluster │ 9355 │ 2m │ 0 │ online │ 0% │ 62.4mb │ user │ disabled │
│ 1 │ amazing_site│ default │ 1.0.0 │ cluster │ 9362 │ 2m │ 0 │ online │ 0% │ 62.5mb │ user │ disabled │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Jeder Befehlsname enthält die Versionsnummer der installierten Node.js-Version. In diesem Beispiel ist die verfügbare Version Node.js 20.15.1.