L'hosting per Node.js è ancora poco diffuso, soprattutto nei paesi di lingua tedesca. La società cloud americana Heroku offre una soluzione qui - e anche gratuitamente . Noti sempre il paradigma "Costruisci app ... non infrastruttura" e non hai quasi nessuna restrizione. Ad esempio, stiamo implementando un piccolo cron job basato su PhantomJS , che elimina ogni giorno un sito Web e invia il titolo della pagina tramite e-mail.
Per fare questo, prima ci registriamo gratuitamente su https://signup.heroku.com/:
Dopo la conferma obbligatoria via e-mail, assegneremo una password sicura:
Per poter utilizzare i componenti aggiuntivi gratuiti del Marketplace in un secondo momento, dobbiamo prima verificare il nostro account in https://heroku.com/verify inserendo una carta di credito (non preoccuparti, tutto rimane gratuito):
Il resto ora avviene esclusivamente sulla riga di comando. Per questo abbiamo bisogno localmente di Node.js / npm , Git e Heroku CLI .
Finalmente accediamo a Heroku localmente (una volta) sulla riga di comando:
Per prima cosa creiamo una nuova app basata su un buildpack adatto. Nel nostro esempio stiamo usando il buildpack ufficiale di Node.js heroku-buildpack-nodejs.git:
1a01abaf4b9308c5714622396ccc4708
Ora creiamo un package.json per installare i pacchetti PhantomJS , CasperJS , SpookyJS e Nodemailer richiesti per il nostro progetto:
1a01abaf4b9308c5714622396ccc4708
La logica effettiva può essere trovata in script.js:
1a01abaf4b9308c5714622396ccc4708
Per prima cosa testiamo tutto a livello locale:
1a01abaf4b9308c5714622396ccc4708
Lo script estrae un titolo da un sito Web e invia un'e-mail:
Ora stiamo spingendo tutto su Heroku, che innesca anche il processo di costruzione:
1a01abaf4b9308c5714622396ccc4708
Se desideri inviare le modifiche al codice a Heroku in un secondo momento, devi semplicemente premere di nuovo. Da un lato, ora possiamo controllare tramite SSH se tutto è in esecuzione sul server:
1a01abaf4b9308c5714622396ccc4708
Anche qui l'email viene inviata correttamente. Ora non ci resta che automatizzare il processo:
1a01abaf4b9308c5714622396ccc4708
Aggiungiamo una nuova chiamata allo script con "Aggiungi nuovo lavoro":
Come test, selezioniamo ogni 10 minuti come frequenza e la salviamo:
Il cronjob ora svolgerà automaticamente il suo lavoro in futuro.