Пару лет назад, имея солидный инженерный опыт, более 10 лет изучая C / C ++ для * nix-систем и 5 лет для iOS Native, мне нужно было разработать приложение бизнес-логики для iOS и Android и бэкэнд для него всего за 3 месяца. Я выбрал React Native для разработки мобильных приложений и Node.js для серверной части по двум основным причинам:

  • Один и тот же язык TypeScript (JavaScript) и один и тот же набор инструментов и библиотек для клиента и серверной части;
  • Крупнейшее сообщество разработчиков программного обеспечения, сообщество JS, ведущее к самому большому и отличному набору инструментов и библиотек.

«Учись один раз, пиши везде» завладело мной.

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

Надеюсь, вы тоже сочтете это полезным.

СОДЕРЖАНИЕ

Часть 1. Первоначальная настройка проекта: TypeScript + Node.js

Часть 2. Экспресс-маршрутизация с открытым API 3.0 и пользовательским интерфейсом / редактором Swagger

Часть 3. Обновление: Logger + переменные среды

Часть 4. Node.js + Express + TypeScript: модульные тесты с использованием Jest

Часть 5. MongoDB с мангустом

Часть 6. Аутентификация с помощью JWT, JSON Web Token

Часть 7. Внутреннее кеширование в Node.js

Часть 8. Внешнее кеширование в Node.js с Redis

Часть 9. Docker, Docker Compose, полное введение

Следите за новостями…

Приложение А. Структура проекта

Вы можете использовать это руководство в качестве учебного пособия, если вы новичок в Node.js или просто выбираете нужные вам части. Вам может потребоваться просмотреть Приложение A. Структура проекта, если вы сразу погрузитесь в конкретную часть, чтобы легко ориентироваться в проекте и коде.

Вы можете получить полные исходные коды проекта на git https://github.com/losikov/api-example. История коммитов Git и теги организованы по частям.