Naar hoofdinhoud springen

Node.js

Inleiding

Node.js is een serverplatform waarop applicaties worden uitgevoerd die in JavaScript zijn geschreven.

Eerst moet u Node.js installeren:

  • Ga naar "Instellingen" -> "Applicaties"

Menu voor applicatiebeheer in FASTPANEL

  • Klik op de knop "Installeren" voor de vereiste Node.js-versie

Node.js-versie installeren in FASTPANEL

Maak een website:

  • Selecteer een sjabloon voor een Node.js-website

Nieuwe websiteconfiguratie in FASTPANEL

  • Geef het domein en de bijbehorende parameters op. In de configuratiefase kunt u de DB, FTP-gebruiker en Backend wijzigen

Nieuwe websiteconfiguratie in FASTPANEL

  • Upload de applicatiebestanden naar de websitemap
  • Voer npm20.15.1 install uit in Terminal om afhankelijkheden te installeren (de ttyd-applicatie moet zijn geïnstalleerd voor FASTPANEL®)

Node.js-afhankelijkheden installeren

  • Start Node.js opnieuw door naar het websitedashboard te gaan en vervolgens de sectie "Services" te openen.

Node.js-service opnieuw starten

Express-framework

Laten we aan de hand van het Express-framework een eenvoudige webserver maken:

  • Maak via SSH verbinding met de server als de gebruiker die eigenaar is van de website (u kunt de ttyd-applicatie voor FASTPANEL® gebruiken)
  • Maak een bestand app.js in de websitemap en vul het met de volgende 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}`);
});

  • Voer in de websitemap de opdracht uit om express te installeren
npm20.15.1 install express
  • Ga naar het websitedashboard en vervolgens naar de sectie Services
  • Start de service opnieuw
  • Controleer de website

Docusaurus

Laten we aan de hand van de Docusaurus-webapplicatie instellingen configureren:

  • Maak via SSH verbinding met de server als de gebruiker die eigenaar is van de website (u kunt de ttyd-applicatie voor FASTPANEL® gebruiken)
  • Voer in de websitemap de installatie van Docusaurus uit
npx20.15.1 create-docusaurus -j ./docs
  • Wanneer u wordt gevraagd een sjabloon te selecteren, antwoord dan classic (recommended)

  • Vervang na de installatie één regel in het bestand docs/package.json

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

$SERVICE_PORT is een systeemvariabele die is ingesteld in FASTPANEL®

  • Ga in het bedieningspaneel naar "website-instellingen" -> "Backend"

  • Selecteer de handler Standalone of PM2.

  • Kies de gewenste Node.js-versie.

  • Geef de werkmap docs op

  • Voer in het veld Launch command het volgende in: npm run start

  • Opslaan. Wacht tot de applicatie is gecompileerd (informatie verschijnt in de logs). Controleer de website

Next.js

Laten we met Next.js en Node.js 20.19 als voorbeeld een eenvoudige webserver maken:

  • Maak via SSH verbinding met de server als de gebruiker die eigenaar is van de website (u kunt ook de ttyd-applicatie in FASTPANEL® gebruiken).
  • Voer in de websitemap de opdracht voor projectinitialisatie uit:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • Voeg een blok scripts toe aan het bestand package.json:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • Maak een map pages en voeg daarin een bestand met de naam index.js toe:
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
  • Voer de projectbuild uit.
yarn20.19.4 build
  • Ga in het bedieningspaneel naar "website-instellingen" -> "Backend"
  • Selecteer de handler Standalone of PM2.
  • Kies de gewenste Node.js-versie.
  • Voer in het veld Launch command het volgende in: yarn run start.
  • Opslaan. Wacht tot de applicatie is gecompileerd (informatie verschijnt in de logs). Controleer de website

Aanvullende informatie

In de modus Standalone wordt een Node.js-proces gestart om uw scripts uit te voeren.

In de modus PM2 wordt de PM2-procesmanager gebruikt om Node.js-processen, logs en systeembelasting te beheren.
In deze modus kunt u ook het aantal workers opgeven — dat wil zeggen het aantal Node.js-processen dat inkomende aanvragen naar de server verwerkt.
Daarnaast biedt deze modus de optie Enable file watch — PM2 start uw applicatie automatisch opnieuw wanneer een bestand in de huidige map of de submappen ervan wordt gewijzigd. Houd er rekening mee dat deze modus extra systeembelasting veroorzaakt en niet wordt aanbevolen voor productieomgevingen.

Op dezelfde manier kunt u de applicatie configureren als deze YARN vereist in plaats van NPM

U kunt de afhankelijkheden van uw project die in package.json worden vermeld, rechtstreeks vanuit FASTPANEL® installeren met YARN of NPM. Open hiervoor de websitekaart en ga naar de sectie Services:

Node.js-services

Logboeken

Een Node.js-applicatie kan logs genereren. In FASTPANEL® bevinden deze zich in het websitedashboard, in de sectie Logs, onder het tabblad "Backend log"

Consoleopdrachten

Na het installeren van Node.js in FASTPANEL® kunnen gebruikers met hun projecten werken met consoleopdrachten zoals:

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

Voorbeeld:

$ 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 │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Elke opdrachtnnaam bevat het versienummer van de geïnstalleerde Node.js-versie. In dit voorbeeld is de beschikbare versie Node.js 20.15.1.