Выкладываем Node.js приложение в сеть
Привет бро) Наверно каждый сталкивался с такой ситуацией, когда он уже хорошо знает Node.js, но не знает куда выложить приложение. Обычно говорят, мол "покупай хост с VDS сервером". А они стоят немало, к тому же это несовсем правильная точка зрения. Чтобы разместить приложения можно пользоваться не только хостингами VDS, но и serverless или облачными сервисами.
Есть несколько вариантов, куда выложить Node.js приложение: Heroku, Azure, AWS, Firebase, Now и т.д. Сегодня мы рассмотрим такой сервис, как Now от компании Zeit. Я выбрал именно его, т.к. с ним я уже работал и выложить приложение на сервер Zeit очень просто.
Подготовка к работе
С помощью Now можно залить статический сайт, Node.js приложение или Docker приложение. Т.к. наш канал посвящён JavaScript, то мы выберем второй вариант. Сначала нам надо зарегаться. Переходим сюда и регистрируемся. Аккаунт создан, теперь нам нужно установить Now как консольную команду. Для этого открываем терминал и пишем:
$ npm i -g now
Когда установка завершится, нам нужно будет залогиниться, чтобы в будущем можно было отслеживать наше приложение:
$ now login > We sent an email to example@gmail.com. Please follow the steps provided inside it and make sure the security code matches Elegant Hammerhead Shark. \ Waiting for your confirmation
Вам придёт письмо на почту, и вы успешно залогинитесь.
Структура приложения
В качестве примера я возьму готовое приложение с GitHub.
Публикация приложения
Всё готово, теперь пишем одну команду, и наше приложение уже лежит на сервере:
$ now Deploying ~\Desktop\app under tal_guy > Your deployment's code and logs will be publicly accessible because you are subscribed to the OSS plan. > NOTE: You can use `now --public` or upgrade your plan (https://zeit.co/account/plan) to skip t
Ждём когда всё загрузится и вуаля, наш скрипт уже закинут на домен!
> Using Node.js 8.11.3 (default) > https://expressexample-oiowlpjgfg.now.sh [in clipboard] (bru1) [4s] > Building… > ▲ yarn > yarn install v1.9.4 > info No lockfile found. > [1/4] Resolving packages... > warning jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade > warning jade > constantinople@3.0.2: Please update to at least constantinople 3.1.1 > warning jade > transformers@2.1.0: Deprecated, use jstransformer > [2/4] Fetching packages... > [3/4] Linking dependencies... > [4/4] Building fresh packages... > success Saved lockfile. > Done in 3.37s. > ▲ Snapshotting deployment > ▲ Saving deployment image (2.1M) > Build completed > Verifying instantiation in bru1 > √ Scaled 1 instance in bru1 [7s] > Success! Deployment ready
Конечно же мы не получим оффициальный домен, потому что тогда бы на всех не хватило, поэтому в конце названия добавляются рандомные символы + .now.sh. Это потому что мы выбрали бесплатный план. В премиум плане домен можно выбрать самому.

Как видите, всё работает:

Управление приложением
Также на сайте Zeit можно просмотреть ошибки приложухи и его внутренности (всм файлы), и историю деплоев (загрузок на сервер):




Заключение
Наверно это одна из самых полезных статей, которую я когда либо писал. Теперь вы знаете как выложить своё творение в интернет, чтобы его можно было увидеть в действии.