Je Node.js applicatie wordt gestart in een container met daarin de Node.js runtime. Deze container is gebaseerd op de door jou gekozen versie van Node.js. De container heeft maximaal de beschikking over 8 CPU cores en 10GB RAM geheugen.

De container maakt gebruik van de data die je op ons bestandssysteem hebt opgeslagen. Op het bestandssysteem staat dus je Node.js-applicatie. Je kunt deze bestanden via FTP plaatsen, wijzigen en verwijderen. Dat gaat buiten de container om. Je kunt dus niet rechtstreeks met de container communiceren.

Link naar deze kopApache als proxy

Jouw website bestaat uit een set hostnamen (zoals example.org of www.example.org), voorzien van een SSL-certificaat. Deze set hostnamen wordt door onze Apache servers herkend en requests van websitebezoekers worden door Apache aangenomen.

Om je applicatie aan de buitenwereld beschikbaar te maken, laten wij Apache specifieke requests naar je container routeren. Welke URL’s precies naar je applicatie gestuurd moeten worden, kun je via MyVevida instellen bij het beheer van de applicatie. Zie Applicaties aanmaken en beheren.

Omdat Apache alle binnenkomende requests doorverbindt naar de door jou ingestelde applicaties, kun je binnen een website verschillende applicaties hebben, zolang elk maar een unieke URL heeft.

Link naar deze kopDependencies installeren

De Node container wordt automatisch gestart zodra de eerste request binnenkomt. Op dat moment wordt ook gecheckt of package.json in de root directory van de applicatie nieuwer is dan de geïnstalleerde dependencies. Zo ja, dan wordt npm install uitgevoerd om de dependencies te installeren. De output van de installatie wordt weggeschreven naar npm.log. De installatie kan even duren. Zorg dus dat als je een nieuwe versie van package.json uploadt, je de container herstart en direct zelf de applicatie URL bezoekt om de installatie te starten.

Het herstarten van een container kun je via MyVevida forceren door bij de details van de applicatie op de knop “Herstart applicatie” te klikken.

Link naar deze kopEntrypoint-script

Wanneer de container eenmaal gestart is, wordt een specifiek script aangeroepen om netwerk requests aan te nemen. Je kunt in MyVevida per applicatie instellen welk script daarvoor gebruikt moet worden, bijvoorbeeld index.js of start.js. Dit noemen we het Entrypoint. Dit script moet vervolgens luisteren naar netwerk verkeer, bijvoorbeeld met behulp van de http library van Node, of een framework als Express.

Het meest simpele voorbeeld van een werkende Node.js-applicatie is natuurlijk Hello World. Je kunt dit zelf uitproberen: maak in je applicatie een script bestand aan, bijvoorbeeld app.js, en stelt dit in MyVevida als het entrypoint. Geef het script deze inhoud:

const http = require('http');
http.createServer(function (req, res) {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
}).listen();

In deze code zie je het volgende:

  1. Er wordt met behulp van Node’s http library een simpele server gedefinieerd die op de standaard poort luistert.
  2. Omdat het een hele simpele applicatie is, moeten we zelf een paar HTTP headers zetten. We serveren een return-code 200 OK en vertellen de browser dat we tekst gaan terugsturen.
  3. Vervolgens sturen we een string terug met daarin de tekst Hello World.

Wat vind jij van dit antwoord?

Bedankt voor je feedback!

Er is een fout opgetreden. Probeer het later opnieuw.