Александре Левачеер
Три года назад я начал разрабатывать API Express.js для компании. Я задавался вопросом, что может быть лучшими контроллерами архитектуры, чтобы оставаться организованной в качестве кодовой базы.
Под влиянием парусов или рельсов и моими исследованиями я пришел к созданию собственной системы. Я не хотел перегружать свой проект, используя полную структуру, такую как паруса, а скорее подбирайте зажигающие зависимости при необходимости.
Поэтому я создал систему организации для контроллеров приложения, которые я сочетал с домашним погрузчиком Отказ С тех пор я улучшил оба из них благодаря опыту, которое я получил, набрал его на другие проекты.
Сегодня я достаточно уверен, что этот метод должен поделиться им, поскольку результаты убедительны.
Из того, что я знаю, он используется несколькими крупными компаниями. Упрощает бортовые новые разработчики, так как оно облегчает чтение кодовой базы.
✅ Вот как настроить архитектуру чистых контроллеров.
Структура
Если вы не предвидите рост вашего приложения, вы быстро будете иметь неорганизованную кодовую базу. Я разработал метод организации, чтобы иметь широкую совместимость, что означает, что когда-нибудь вы не будете заблокированы в виде случая использования, вы не можете решить с этим методом.
Настройте ваше файловое дерево
- Групповые маршруты в контроллерах
- Создать папки для каждого контроллера
- Создайте файл маршрутизации в каждом контроллере, который описывает путь каждого маршрута, Способ звонить, это необязательно ассоциировано промежуточное ПО, и Уровень ограничения.
- Создайте файл для действий каждого контроллера, который содержит Метод выполнить и средние годы Отказ
- Создать SPEC файл для тестирования
Давайте посмотрим, как это выглядит.
Не бойтесь создавать много файлов . Он не замедляет разработку, и это делает вашу кодовую базу аккуратной и воздушной. ✨
Загрузить свои маршруты
Чтобы сделать работу после структуры, определенной выше, нам нужно использовать простой погрузчик, который я создал: Люми Отказ Он пройдет через ваши контроллеры, прочитал файлы определения и загружают свои маршруты.
Это небольшой пакет, вы можете проверить, чтобы проверить код кода на Github Отказ
Маршрутные файлы
Они были разработаны так, чтобы быть легко прочитаны. Цель состоит в том, чтобы иметь возможность определить методы обновления в разработке, имея быстрый поиск в вашем . Руководство файлы. В следующем примере будут созданы три маршрута:
- [Положить] /Пользователь
- [Получить] /Пользователь
- [Получить] /пользователь/сброс-пароль
Вы задаетесь вопросом, почему маршруты префиксированы с помощью « пользователь », хотя он не описан в определении маршрутизации. Lumie использует имя папки, в которой файл маршрутизации является префикс маршрутов.
Здесь мы в Контроллеры/пользователь/user.ruoting.js Отказ Если Пользователь Папка была в подпапке Админ Например, маршруты были бы префиксированы admin/user Отказ
Обратите внимание, что вы можете пройти дополнительное путь Поле к определению маршрутизации, поэтому он будет использоваться вместо одного по умолчанию.
Действия и подразделение
Как вы можете видеть выше, каждая конфигурация маршрутов имеет метод действий, который не более, чем логика для выполнения, когда мы вызовите ваш маршрут API. Рекомендую держать в одном файле: Один метод действий и Его необязательно связанное промежуточное программное обеспечение Отказ
Ограничения
Для каждой конфигурации маршрутов вы выберете уровень ограничения, связанный. Значение уровня будет передано в функцию ограничения, которую вы создадите, чтобы сделать работу Lumie. Посмотреть Как инициализировать Lumie С вашей собственной функцией ограничения.
Это должна быть просто функция, которая возвращает классическую экспресс промежуточное программное обеспечение.
Заключение
Я использовал этот метод некоторое время. Мне нравится иметь такие виды самоуверенных рамх, когда я развиваю. В конце дня он помогает мне сохранить хорошую кодовую базу и не принимать ярлыки, такие как писать слишком много логики в одном файле или определение маршрута в неподходящем файле.
Спасибо за прочтение. Подскажите в комментариях, что вы думаете об организации контроллеров таким образом.
Если вы нашли эту статью полезную, брось немного? ?
Оригинал: “https://www.freecodecamp.org/news/how-to-organize-express-controllers-for-large-codebases-2d8284bbf817/”