Ondersteuning voor Node.js bij Antagonist!

Node.js is vanaf vandaag beschikbaar op het Plus- en Pro-pakket. Je kunt hierdoor bij Antagonist naast PHP en Python nu ook Node.js gebruiken. Zo bouw je in een handomdraai de meest moderne webapplicaties. Graag vertel ik je meer over deze populaire JavaScript runtime. Hoe ga je aan de slag met Node.js en waarom zou je dat willen?

Ondersteuning voor Node.js bij Antagonist!

Wat is Node.js?

Volgens de ontwikkelaars ervan is Node.js een JavaScript runtime gebouwd op Chrome’s V8 JavaScript engine. Laat ik dit wat verduidelijken. Velen van jullie kennen vast JavaScript. Dat gebruik je doorgaans om websites dynamischer te maken. Je stuurt het dan met de HTML mee, waaruit een webpagina bestaat. Je browser voert vervolgens het JavaScript uit. Gebruik je Chrome, dan gebeurt dit door de V8 JavaScript engine.

Hetgeen wat in je browser wordt uitgevoerd, noemen we de front-end van een webapplicatie. Wat op de webserver wordt uitgevoerd, noemen we de back-end – in ons geval de webhostingservers van Antagonist. Maakte je eerder een webapplicatie, dan was het lange tijd zo dat je de back-end in bijvoorbeeld PHP schreef en de front-end in JavaScript. Dit is nog steeds een veelgebruikte combinatie. Bijvoorbeeld bij WordPress, Joomla en Magento gaat dit zo.

Gebruik je deze software en werkt dat voor jou prettig, dan is dat natuurlijk prima! Schrijf je echter zelf een webapplicatie, dan moet je voor de front-end in JavaScript kunnen programmeren. Als je daar toch al JavaScript moet leren, hoe gaaf is het dan om ook je back-end daarin te kunnen schrijven? Hier komt Node.js om de hoek kijken. Dit is namelijk precies wat het is, een JavaScript runtime die je op de webserver draait!

Waarom Node.js-ondersteuning?

Node.js is momenteel erg populair en daarom geven wij onze klanten graag de mogelijkheid om ermee aan de slag te gaan. Doorgaans start je Node.js met het commando node en luistert het dan op een poort, bijvoorbeeld 3000. Om het goed te laten werken, zorg je dan dat Node.js door een procesmanager wordt gestart. Ook zet je er een reverse proxy voor, zodat de applicatie ook beschikbaar is via HTTPS op poort 443.

Gelukkig hebben wij het moeilijke werk al voor je gedaan en hoef je met bovenstaande geen rekening te houden. Je maakt de applicatie aan via de Node.js-selector in DirectAdmin, zorgt dat die in de juiste map staat en voilà, het werkt! Laten we eens kijken hoe dat met een voorbeeldapplicatie gaat.


Aan de slag met Node.js

Wil je graag met Node.js aan de slag, kies dan voor ons Plus- of Pro-pakket! Inclusief gratis SSL en automatische backups.

Bekijk hostingpakketten →


Express een voorbeeld…

Stel, je kiest er net als ik voor om met Express te beginnen, een bekend web framework voor Node.js. Om een nieuwe applicatie op te zetten, ga je dan in DirectAdmin naar Extra functiesNode.js Selector.

De Node.js-selector in DirectAdmin.

Als je vervolgens op ‘Create application’ klikt, dan krijg je het volgende scherm te zien. Graag licht ik de opties toe.

Instellingen in de Node.js-selector.

  • Node.js version | Hier kies je de Node.js-versie die je wilt gebruiken. Op dit moment bieden we alleen versie 12 aan, dus die keuze is makkelijk. In de toekomst zullen we hier ook nieuwere versies aan toevoegen.
  • Application mode | Deze zet de waarde van de NODE_ENV-variabele. Node.js gebruikt deze variabele Node.js om te bekijken of het om een productie- of ontwikkelinstallatie gaat. Bij een ontwikkelnstallatie worden uitgebreide foutmeldingen en debug-output getoond. Handig als je aan het ontwikkelen bent, maar onwenselijk in een productieomgeving.
  • Application root | Deze verplichte waarde bepaalt in welke map je project komt te staan. Dit kan bijvoorbeeld de projectnaam van je applicatie zijn. Om het georganiseerd te houden, kies ik er voor om dit onder mijn domein-map te doen. Zo wordt hij ook mooi meegenomen met Antagonist Backups en kan ik dus makkelijk een backup herstellen.
  • Application URL | Dit is standaard de URL van je website met de ‘application root’ als pad (voorbeeld.nl/demo). Je kunt ook het project op de URL draaien zonder pad. Vul dan gewoon je domein in (voorbeeld.nl).
  • Application startup file | Dit is het Node.js startup-bestand. Standaard is dit app.js, maar bij bijvoorbeeld het Express framework moet je hier voor bin/www kiezen. Laat je dit leeg, dan wordt app.js-bestand aangemaakt, zodat je een alvast een werkend begin hebt.
  • Passenger log file | Vul hier eventueel een bestandsnaam in waar Node.js naar kan loggen. Mocht je zelf een applicatie uploaden, zorg dan dat je zelf logging instelt. Het komt dan niet in dit bestand terecht.

Express installeren

Klik op ‘Create’ als je alle instellingen naar wens hebt ingevoerd. Er wordt dan getoond hoe je via SSH de virtualenv activeert en naar je projectmap navigeert. Deze projectmap is de map die je onder ‘Application root’ hebt opgegeven.

Node.js-selector: virtualenv activeren en naar je projectmap navigeren.

Je zit nu in een virtuele Node.js-omgeving met de in DirectAdmin gekozen Node.js-versie. Nu gebruik ik express-generator om Express te installeren.

npx express-generator
npm install

Zo, je hebt nu een basis voor Express staan! Als je nu op ‘Restart’ klikt, kun je de website openen en wordt je hartelijk begroet met de placeholder-tekst.

Pro-tip!
Je kunt ook via SSH herstarten door het volgende commando vanuit de projectmap uit te voeren: touch tmp/restart.txt

Je hebt zojuist je eerste Node.js-applicatie succesvol neergezet. In feite heb je de stappen uit de Express-documentatie doorlopen, zoals die bij Antagonist van toepassing zijn. Wil je meer met Node.js en Express, dan kun je vanuit daar verder. Je kunt vanzelfsprekend ook een ander framework gebruiken of misschien wil je wel helemaal vanaf nul beginnen. De keuze is aan jou.

Veel plezier ermee!

Wij zijn zelf erg blij met deze toevoeging. Hopelijk jij ook! Wellicht wilde je altijd al eens met Node.js aan de slag, maar wist je niet hoe je daar een server voor kon opzetten. Misschien heb je al ergens een Node.js-applicatie draaien, maar vind je een hele server daarvoor beheren veel gedoe. Of je wilt een mengeling van Python, Node.js en PHP binnen je website gebruiken. Oké, in dat laatste geval moet je misschien toch eens nadenken of je handig bezig bent, maar wie zijn wij om te oordelen? Wat je wens ook is, je kunt bij ons terecht!

P.S. Blijf op de hoogte en volg ons via Facebook, Twitter, Instagram, e-mail en RSS. Heb je vragen, tips of opmerkingen? Laat het achter als reactie. Vond je het artikel nuttig? Deel het dan met anderen!

Deel App Tweet Mail Deel

10 thoughts on “Ondersteuning voor Node.js bij Antagonist!

  1. Cor Schols op zei:

    Ik hoopte al een hele poos dat Antagonist dit zou gaan ondersteunen. Eindelijk is het dan zo ver. Ik zal mijn pakket binnenkort upgraden. Verloopt het node.js verkeer via NGINX reverse proxy?

    • Fijn dat je er blij mee bent, Cor! Het verkeer loopt niet via een NGINX reverse proxy. We gebruiken Apache met mod_passenger. Dat heeft onder andere als voordeel dat je een website kunt hebben die deels in PHP en deels in Node.js is geschreven. (Nog) geen ondersteuning voor websockets is hier een nadeel van.

  2. Top, lang (echt te lang..) gewacht maar toch gekomen! Ik neem aan dat het ook in m’n reseller pakket beschikbaar komt?

    • Momenteel zijn daar geen plannen voor. Node.js is beschikbaar op het Plus- en Pro-pakket. Dit is vanwege containerisatie en de daar beschikbare resources een weloverwogen keuze geweest. Heb je een reseller-pakket en wil je graag met Node.js aan de slag, dan is daarvoor een Plus-pakket ernaast gebruiken een mogelijke optie.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *