Hosting voor Node.js is nog steeds niet erg wijdverbreid, vooral in Duitstalige landen. Het Amerikaanse cloudbedrijf Heroku biedt hier een oplossing - en zelfs gratis . Je merkt altijd het paradigma "Apps bouwen ... geen infrastructuur" en kent nog steeds nauwelijks beperkingen. Als voorbeeld implementeren we een kleine cron-taak op basis van PhantomJS , die elke dag een website schrapt en de paginatitel per e-mail verstuurt.
Hiervoor registreren we eerst gratis bij https://signup.heroku.com/:
Na de verplichte e-mailbevestiging geven we een veilig wachtwoord af:
Om later gratis add-ons van de marktplaats te kunnen gebruiken, moeten we eerst ons account onder https://heroku.com/verify verifiëren door een creditcard in te voeren (geen zorgen, alles blijft gratis):
De rest vindt nu exclusief plaats op de opdrachtregel. Hiervoor hebben we lokaal Node.js / npm , Git en Heroku CLI nodig .
We loggen eindelijk lokaal in op Heroku (eenmaal) op de opdrachtregel:
Eerst maken we een nieuwe app op basis van een geschikt buildpack . In ons voorbeeld gebruiken we het officiële Node.js buildpack heroku-buildpack-nodejs.git:
1a01abaf4b9308c5714622396ccc4708
Nu maken we een package.json om de PhantomJS- , CasperJS- , SpookyJS- en Nodemailer- pakketten te installeren die nodig zijn voor ons project:
1a01abaf4b9308c5714622396ccc4708
De eigenlijke logica is te vinden in script.js:
1a01abaf4b9308c5714622396ccc4708
We testen alles eerst lokaal:
1a01abaf4b9308c5714622396ccc4708
Het script haalt een titel uit een website en stuurt een e-mail:
We pushen nu alles op Heroku, wat ook het bouwproces activeert:
1a01abaf4b9308c5714622396ccc4708
Als u later codewijzigingen naar Heroku wilt pushen, drukt u gewoon opnieuw. Enerzijds kunnen we nu via SSH controleren of alles op de server draait:
1a01abaf4b9308c5714622396ccc4708
Ook hier wordt de e-mail correct verzonden. Nu moeten we het proces gewoon automatiseren:
1a01abaf4b9308c5714622396ccc4708
We voegen een nieuwe scriptoproep toe met "Nieuwe baan toevoegen":
Als test selecteren we elke 10 minuten als frequentie en slaan deze op:
De cronjob zal in de toekomst nu automatisch zijn werk doen.