Хостинг для Node.js все ще не дуже поширений, особливо в німецькомовних країнах. Американська хмарна компанія Heroku пропонує тут рішення - і навіть безкоштовне . Ви завжди помічаєте парадигму "Створення додатків ... а не інфраструктури", і при цьому навряд чи є якісь обмеження. Як приклад, ми реалізуємо невелике завдання cron на основі PhantomJS , яке щодня обробляє веб-сайт і надсилає заголовок сторінки електронною поштою.
Для цього ми спочатку безкоштовно реєструємось на https://signup.heroku.com/:
Після обов'язкового підтвердження електронною поштою ми призначимо надійний пароль:
Для того, щоб пізніше мати можливість використовувати безкоштовні доповнення з Marketplace, спочатку ми повинні підтвердити свій рахунок під https://heroku.com/verify , ввівши кредитну картку (не хвилюйтеся, все залишається безкоштовно):
Решта тепер відбувається виключно в командному рядку. Для цього нам потрібні локально Node.js / npm , Git та Heroku CLI .
Ми нарешті входимо в Heroku локально (один раз) у командному рядку:
Спочатку ми створюємо новий додаток на основі відповідного buildpack . У нашому прикладі ми використовуємо офіційний Node.js buildpack heroku-buildpack-nodejs.git:
1a01abaf4b9308c5714622396ccc4708
Тепер ми створюємо пакет.json , щоб встановити пакети PhantomJS , CasperJS , SpookyJS та Nodemailer, необхідні для нашого проекту:
1a01abaf4b9308c5714622396ccc4708
Фактичну логіку можна знайти в script.js:
1a01abaf4b9308c5714622396ccc4708
Спочатку ми перевіряємо все локально:
1a01abaf4b9308c5714622396ccc4708
Сценарій витягує заголовок із веб-сайту та надсилає електронне повідомлення:
Зараз ми все натискаємо на Heroku, що також запускає процес збірки:
1a01abaf4b9308c5714622396ccc4708
Якщо ви хочете пізніше змінити код на Heroku, ви просто натиснете ще раз. З одного боку, тепер ми можемо через SSH перевірити, чи все працює на сервері:
1a01abaf4b9308c5714622396ccc4708
Тут також електронне повідомлення надіслано правильно. Тепер нам залишається лише автоматизувати процес:
1a01abaf4b9308c5714622396ccc4708
Ми додаємо новий виклик сценарію за допомогою "Додати нову роботу":
В якості тесту ми вибираємо кожні 10 хвилин як частоту і зберігаємо її:
Тепер cronjob автоматично виконуватиме свою роботу автоматично.