Node.js på KattaHotell

Kjør JavaScript på serveren! Perfekt for Express, Socket.io, React SSR og andre Node.js-applikasjoner.

Krever godkjenning

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

  1. Gå til portal.katta-it.no og logg inn
  2. Klikk på Mine domener
  3. Velg domenet du vil ha Node.js på
  4. Finn Node.js-seksjonen
  5. 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.

Godkjenning tar vanligvis 1-2 skoledager

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}`);
});
Viktig: Bruk riktig port og IP

Appen din 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:

  1. Last opp filene via WinSCP eller filbehandleren
  2. Gå til domenet ditt i portalen
  3. Klikk Restart app i Node.js-seksjonen
  4. 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:

  1. Gå til domenet ditt i portalen
  2. Klikk Se logger i Node.js-seksjonen
  3. 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:

  1. Gå til domenet ditt i portalen
  2. Klikk Deaktiver i Node.js-seksjonen
  3. 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).