Node.js-støtte må godkjennes av lærer eller administrator før den aktiveres. Dette er fordi Node.js gir mer avansert tilgang til serveren.
Hva er Node.js?
Node.js lar deg kjøre JavaScript på serveren, ikke bare i nettleseren. Dette åpner for å lage:
- API-er og backend-tjenester med Express.js
- Sanntidsapplikasjoner med Socket.io (chat, spill)
- Server-side rendering med React/Next.js
- Egne webservere med full kontroll
Slik får du Node.js-støtte
1. Bestill Node.js
- Gå til portal.katta-it.no og logg inn
- Klikk på Mine domener
- Velg domenet du vil ha Node.js på
- Finn Node.js-seksjonen
- Klikk Bestill Node.js
2. Vent på godkjenning
En lærer eller administrator vil se over forespørselen din. Du får beskjed når Node.js er aktivert.
Snakk med IT-læreren din hvis du trenger det raskere!
3. Node.js er aktivert!
Når godkjent, ser du følgende i portalen:
- Status: Viser om appen kjører eller er stoppet
- Port: Hvilken port appen din kjører på (f.eks. 3001)
- Restart-knapp: Start appen på nytt etter endringer
- Se logger: Vis feilmeldinger og output fra appen
Kom i gang med koding
Din første Node.js-app
Når Node.js aktiveres, opprettes en enkel app.js i public_html-mappen din.
Du kan redigere denne eller erstatte den med din egen kode.
Eksempel: Enkel webserver
const http = require('http');
const port = process.env.PORT || 3000;
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('<h1>Hei fra Node.js!</h1>');
});
server.listen(port, '0.0.0.0', () => {
console.log(`Server kjører på port ${port}`);
});
Eksempel: Med Express.js
Express er et populært rammeverk som gjør det enklere å lage webservere:
// Først installer Express via SSH:
// npm init -y
// npm install express
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hei fra Express!');
});
app.get('/api/data', (req, res) => {
res.json({ message: 'Dette er JSON-data!' });
});
app.listen(port, '0.0.0.0', () => {
console.log(`Express kjører på port ${port}`);
});
Appen din må lytte på process.env.PORT og 0.0.0.0
(ikke localhost) for at den skal være tilgjengelig fra internett.
Etter endringer
Når du har redigert koden din:
- Last opp filene via WinSCP eller filbehandleren
- Gå til domenet ditt i portalen
- Klikk Restart app i Node.js-seksjonen
- Vent noen sekunder og refresh nettsiden din
Bruke npm og installere pakker
For å installere npm-pakker trenger du SSH-tilgang. Når du har SSH, kan du:
# Koble til via SSH (f.eks. med PuTTY)
# Gå til public_html
cd public_html
# Opprett package.json
npm init -y
# Installer pakker
npm install express
npm install socket.io
npm install mongoose
Se logger
Hvis appen din krasjer eller ikke fungerer, sjekk loggene:
- Gå til domenet ditt i portalen
- Klikk Se logger i Node.js-seksjonen
- Se etter feilmeldinger i Error log
Vanlige feil:
- Cannot find module - Du mangler en npm-pakke (kjør
npm install) - EADDRINUSE - Porten er allerede i bruk (restart appen)
- SyntaxError - Det er en skrivefeil i koden din
Deaktivere Node.js
Hvis du ikke trenger Node.js lenger, kan du deaktivere det:
- Gå til domenet ditt i portalen
- Klikk Deaktiver i Node.js-seksjonen
- Bekreft at du vil deaktivere
Filene dine (app.js, node_modules, osv.) blir ikke slettet,
så du kan aktivere igjen senere.
Vanlige spørsmål
Kan jeg bruke WebSockets/Socket.io?
Ja! Nginx-proxyen er konfigurert med WebSocket-støtte, så Socket.io og lignende fungerer.
Hvilken Node.js-versjon brukes?
Vi kjører Node.js 20 LTS (Long Term Support) - den mest stabile versjonen.
Kan jeg kjøre flere apper på samme domene?
Nei, du får én Node.js-app per domene. Men du kan ha flere routes i samme app!
Hva er PM2?
PM2 er en prosessmanager som holder appen din kjørende. Hvis appen krasjer, starter PM2 den automatisk på nytt.
Får jeg tilgang til databasen?
Ja! Du kan koble til MySQL-databasen din fra Node.js. Bruk database-informasjonen fra portalen (server, brukernavn, passord).