Skip to content

idoleg/messenger-backend

Repository files navigation

Node.js

Требуемая версия не ниже 10.

TypeScript

В проекте ипользуется TypeScript версии 3.2.2

  1. ➔ Официальная Докуменатция
  2. ➔ TypeScript Deep Dive
Настройка WebStorm

Откройте Settings проекта, выберете Languages & Frameworks ➔ TypeScript и в этой вкладке укажите:

  1. Node interpreter: Project
  2. TypeScript: ~AppData\Roaming\npm\node_modules\tslint
  3. ☑ TypeScript Language Service
  4. ☑ Recompile on changes
  5. Compile scope: project

Теперь внизу появится вкладка TypeScrip, в которой вы сможете увидеть ошибки компиляции, а WebStorm будет авторматически компилировать файлы.

Linting

Для линтинга используется пакет TSLint c прессетом recommended. Перед пушем кода в репозиторий убедитесь, что код соответсвует правилам линтера.

Команды
  1. npm run lint - анализирует весь проект и выводит в консоль ошибки, если они есть
  2. npm run fix - автоматически пытается исправить ошибки в проекте
Настройка WebStorm

Откройте Settings проекта, выберете Languages & Frameworks ➔ TypeScript ➔ TSLint и в этой вкладке укажите:

  1. ☑ Enable
  2. Node interpreter: Project
  3. TSLint package: %путь до репозитория%\node_modules\tslint
  4. Search for tslint.json
  5. Lint JavaScript Files ☑

Отладка

Для отладки кода написанного на TypeScript под WebStorm создайте в окне Run/Debug Configuration новую Node.js конфигурацию, где во вкладке Configuration укажите:

  1. Node interpreter: Project
  2. Node params: --inspect
  3. Working directory: %путь до репозитория%
  4. JavaScript file: \dist\app\index.js

Теперь, если у вас созданы map-файлы, вы можете ставить точку останова в файлах TS и ваш код будет останавливаться на них.

Юнит тестирование

Модульное тестирование очень важно для написания поддерживаемого и исправно работающего кода. Также это позволяет писать код по методологии TDD. И документировать с помощью BDD.

  1. Mocha - Фреймворк для тестирования
  2. Chai (API) - Библиотека для создания утверждений
  3. Sinon - Библиотека для создания шпионов, стабов и мок

При тестировании маршрутов подключайте сбилженные js файлы, а не ts.

Команды
  1. npm run test - запустить тесты и вывести результаты в консоль
  2. npm run test:report - запустить тесты и сформировать html-отчет с результатами тестов по пути /test/.report/mochawesome.html
  3. npm run test:coverage - азапустить тесты и сформировать html-отчет покрытия кода тестами по пути /test/.coverage/index.html
Настройка WebStorm

Для отладки кода написанного на TypeScript под WebStorm создайте в окне Run/Debug Configuration новую Mocha конфигурацию, где во вкладке Configuration укажите:

  1. Node interpreter: Project
  2. Working directory: %путь до репозитория%
  3. Mocha packages directory: %путь до репозитория%%путь до mocha в папке node_modules%
  4. User interface: bdd
  5. File Pattern ☑
  6. Test file pattern: **/*.spec.ts

Для дополнительного прочтения

  1. Хабр: Сравнение инструментов для тестирования
  2. Хабр: Тестирование RESTful API
  3. Медиум: Введение в модульное тестирование
  4. Медиум: Мокирование
  5. Медиум: Mocking in TypeScript
  6. Istanbul: Формирование отчета покрытия кода тестами
  7. Mongoose models and unit tests

Пуш кода в репозиторий

Перед пушем кода в репозиторий, убедитесть, что:

  1. Код соответсвует правилам линтера - npm run lint
  2. Код проходит все тесты - npm run test
  3. Незабывайте, что у вас должен быть глобально утсановлен комитизен npm i -g commitizen
  4. Добавьте в коммит только файлы, решающие ту задачу, за которую вы взялись
  5. Дайте осмысленное название комиту согласно правилам Conventional Commits командой git cz
  6. Запуште ваш код в ветку develop или feature/%name

Приложение

При написании своего функционала выносте параметры, которые можно изменять в файлы конфигураций, находящиеся в папке /config. Для параметров, которые зависят от среды выполнения (например, конфигурация для доступа к серверу БД) ипользуйте .env файл.

Развертывание и запуск приложения
  1. Скопируйте файл .env.example и переименуйте его в .env
  2. Скомпилируйте исходный TS-код в код на JS командой npm run build либо средствами вашей среды разработки
  3. Запустите приложение в обычном режеме командой npm start
  4. Либо запустите приложение с авторестартом при изменениях командой npm run dev
Заполнение фейковыми данными

Введите в консоле npm run faker для того, что бы заполнить БД фейковыми данными. Вы можете указать множитель, что бы сгенерирвать больше данных: npm run faker 5. При больших значениях операция может продолжатьься слишком долго!

Документация к используемым пакетам
  1. Mongoose
  2. Express
  3. Validator
  4. JWT
  5. WebSocket-Node

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published