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