Это 2-я часть серии, в которой мы сами создаем классное приложение.

В первой части мы настроили наше приложение Slack, среду разработки и смогли запустить наш первый код node.js с нашего компьютера 🥳.

В этой части вы:

  1. Настройте контроль версий Git
  2. Откройте проект GitHub и синхронизируйте с ним свой проект.
  3. Настройте воркер на сервере Heroku
  4. Свяжите Heroku для синхронизации с учетной записью GitHub

Давайте рассмотрим и поймем код, который мы использовали:

  • Линия № 2
const { WebClient, LogLevel } = require("@slack/web-api");

Эта строка вызывает пакет Node Slack SDK и назначает его параметру с именем WebClient. Это настройка, которую мы должны выполнить, чтобы использовать действия, связанные со Slack. Параметр LogLevel является избыточным, и мы его пока проигнорируем.

  • Затем в строке № 5 мы создаем экземпляр с именем client, который будем использовать для выполнения действий, связанных со Slack (в нашем случае для публикации сообщения). Мы добавили наш токен в экземпляр, чтобы он имел право выполнять эти действия.
const client = new WebClient("YOUR-Bot-User-OAuth-Token");

что в основном переводится как:

Создайте новый экземпляр константы с именем client. Это должен быть новый экземпляр WebClient, инициализированный токеном приложения, который позволяет ему выполнять действия.

  • В строке № 7 мы создали экземпляр с именем channelId, в котором хранится идентификатор участника.
const channelId = "YOUR-MEMBER-ID";

Причина, по которой мы использовали экземпляр, заключается в том, что мы будем вводить channelId каждый раз, когда нам нужно будет его использовать, вместо того, чтобы явно указывать идентификатор. Параметризация всей информации в начале кода — очень хороший способ сохранить гибкий и читабельный код.

  • Затем у нас есть блок, начинающийся со строки №8 и заканчивающийся строкой №21.
(async () => {
  //SOME CODE TO SEND A MESSAGE TO SLACK
})();

Это формат для асинхронной функции. Это означает, что во время выполнения кода выполнение кода не будет останавливаться до тех пор, пока не завершится содержимое асинхронной функции (как и в случае неасинхронных функций, где выполнение кода приостанавливается до тех пор, пока функция не завершит свое выполнение). Зачем нам нужна асинхронная функция для выполнения отправки сообщения? Хороший вопрос! Это связано с кодом внутри функции:

try {
  //SOME CODE TO SEND A MESSAGE TO SLACK
}
catch (error) {
  //SOME CODE TO DEAL WITH WHAT HAPPENS WHEN THE MESSAGEE WILL NOT BE SUCCESSFULLY DELIVERED
}

У него есть блок try/catch, который представляет собой метод попытки и выполнения команды и возможность обрабатывать случай, когда команда терпит неудачу, не прерывая выполнение (если команда терпит неудачу, мы могли бы обработать его и продолжить выполнение остальной части нашего кода). Чтобы реализовать блок try/catch, он должен находиться внутри асинхронной функции.

  • Давайте рассмотрим команду, которая фактически отправляет сообщение в Slack, в строках 11–13.
  const result = await client.chat.postMessage({
    channel: channelId,
    text: "Hello world from my computer"
  });

Это немного нелогично, но здесь написано что-то вроде:

Результат, который мне нужен, — это результат, когда я закончу ожидание завершения метода chat.postMessage экземпляра клиента. Метод chat.postMessage выполняется с использованием двух параметров конфигурации: channel, который равен нашему channelId (ранее определенному) и text, что соответствует сообщению, которое мы хотим отправить.

Этот блок выполняет chat.postMessage и помещает результат выполнения (ответ сервера Slack на наш вызов chat.PostMessage) в result.

  • Затем в строке №16
  console.log(result);

Мы отображаем ответ в нашем терминале. По сути говоря: установите запись журнала консоли в качестве содержимого результата.

Содержимое результата — это то, что мы видели здесь:

  • Давайте рассмотрим пойманную часть блока
catch (error) {
  console.error(error);
}

В основном это означает: если есть ошибка с блоком try, задайте содержание ошибки в параметре error, а затем установите log. strong> запись консоли должна быть содержимым ошибки.

Довольно просто, правда? 😅

Теперь давайте настроим контроль версий и разместим наш код в облаке.

Но почему 🤔?

Хороший вопрос! Во время разработки происходит много взаимодействий и иногда параллельное кодирование. Чтобы не потерять себя, мы должны отслеживать все наши изменения, управляя версиями изменений. Наличие нашего кода и версий в облаке позволит нам синхронизировать их с сервером для запуска нашего кода, а также позволит нам и другим членам команды вносить свой вклад в наш код из любого места.

Давайте откроем учетную запись GitHub для хранения нашего кода и его версий.

  • Перейдите на https://github.com/
  • Зарегистрироваться
  • В VSCode щелкните версию. значок управления на левой панели инструментов и нажмите Опубликовать на GitHub.

  • Нажмите на кнопку с галочкой, чтобы сделать первый коммит

  • Добавьте примечание к коммиту и нажмите клавишу return.

  • О нет, у нас была ошибка, давайте посмотрим, в чем проблема

  • Давайте настроим адрес электронной почты и имя пользователя для коммитов git.
  • Откройте терминал и введите следующую информацию (замените поля электронной почты и имени данными, которые вы использовали для настройки учетной записи GitHub)

git config --global user.email "[email protected]"

а затем нажмите клавишу возврата.

Затем добавьте имя пользователя и нажмите клавишу возврата

git config --global user.name "Your Name"

  • Давайте попробуем зафиксировать снова, используя значок галочки и добавив примечание

обратите внимание, что список слева стал пустым — это означает, что всем нашим последним изменениям присвоена версия проекта.

  • Вы заметите на GitHub, что теперь у вас есть новый репозиторий. Нажмите на нее.

  • Скопируйте ссылку на репозиторий

  • Теперь давайте отправьте нашу последнюю версию на GitHub.

  • Мы получим сообщение об ошибке в правом нижнем углу окна VSCode. Давайте нажмем «Добавить удаленный», чтобы решить эту проблему.

  • Вставьте URL-адрес, скопированный с GitHub.

  • Добавьте имя удаленному источнику и нажмите клавишу «Return».

  • Давайте попробуем еще раз отправить наш код

  • Теперь, когда вы обновите свой проект GitHub, вы увидите наши локальные файлы в проекте.

Давайте посмотрим, что только что произошло

Мы подключили систему контроля версий (git), а затем отправили нашу последнюю версию в нашу главную ветку на GitHub.

Так что же это за действия Commit и Push?

Мы использовали Commit, чтобы зафиксировать файлы для управления версиями, и Push, чтобы отправить последнюю версию в удаленный репозиторий на GitHub.

Во время разработки мы будем сохранять и фиксировать наши изменения, а затем отправлять их на GitHub для каждой новой версии кода, которую мы создадим.

Хорошо, теперь мы настроим удаленный сервер (Heroku) для запуска нашего приложения.

(9 шагов)

  1. Перейдите в Heroku и создайте новую учетную запись со всеми настройками по умолчанию. Обязательно установите язык программирования по умолчанию как Node.js

2. Создайте новое приложение в Heroku (дайте ему веселое и узнаваемое имя)

3. Подключите свой проект GitHub к приложению.

4. В VSCode укажем, что start — это команда, которая должна выполнить файл app.js, содержащий наше приложение. Это просто то, что нужно сделать, чтобы все работало, как ожидалось.

4.1 Перейдите в проводник, щелкните файл package.json

4.2 Замените строку «тест» под скриптами на следующую:

"start": "node app.js"

4.3 Сохраните измененный файл package.json

4.4 Создайте новый файл в папке проекта и назовите его Procfile (без расширения). Добавьте следующую строку в файл и сохраните ее (это то, что нужно настроить, чтобы все работало должным образом на Heroku).

worker: npm start

4.5 На веб-сайте Heroku измените следующую конфигурацию на «worker» вместо «web».

5. Теперь давайте изменим сообщение, которое мы хотим отправить с помощью нашего приложения (не забудьте сохранить файл), зафиксируем изменения, отправим их на GitHub и посмотрим, что произойдет. Отправленные изменения должны поместить наш код на сервер Heroku и запустить его оттуда — в конечном итоге отправив наше сообщение в наш Slack с сервера Heroku.

***ЭТО ТО, ЧТО ВЫ БУДЕТЕ ДЕЛАТЬ ПРИ КАЖДОМ ИЗМЕНЕНИИ КОДА ПОСЛЕ СОХРАНЕНИЯ ФАЙЛОВ***

6. На Heroku вы можете вручную развернуть изменение на сервере.

7. Если все прошло хорошо, вы должны увидеть это сообщение в Heroku и получить новое слабое сообщение.

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

9. Давайте еще раз проверим наш end-to-end, снова изменив сообщение, зафиксировав и отправив изменение.

Ты сделал это! 🍾

Вы успешно настроили сервер, на котором работает ваше приложение. Кроме того, ваша локальная разработка синхронизируется с удаленным репозиторием. Таким образом, все ваши зафиксированные и отправленные изменения автоматически выполняются на сервере.

Это довольно много — Молодец!

Что теперь?

Нашими следующими шагами будут:

  1. Установите пакет cron npm
  2. Используя инструмент создания сообщений Slack, настройте формат сообщения для отправки через API.
  3. Настройте учетную запись AWS и создайте новую корзину для хранения изображений.

Перейдем к части 3››