Ако някога сте стартирали проект с Node.js и ExpressJs, управляващи вашия бекенд, в този случай шансовете са, че сте прекарали значително време в организиране на вашия код (маршрути, контролери, мидълуер, помощни функции, методи на помощни средства и т.н. .) в поддържаема и лесна за навигация структура на папките.

Тук споделям организирана, но лесна за поддържане структура на папки, която може да се използва за изграждане на всяко ExpressJs приложение от нулата или може да служи като добра справка за рефакторинг на вашето съществуващо приложение.

Наличието на отделни папки със самоописателни имена улеснява навигацията в кода и също така помага при поддръжката на кода, докато приложението расте. Значението на всяка папка е обяснено накратко по-долу:

  1. Маршрути: Съдържа всички файлове на рутера, които допълнително съдържат крайните точки, водещи до съответните контролери.
  2. Контролери: Съдържа съответните функции на контролера за съответния маршрут. Функцията на контролера е мястото, където се записва бизнес логиката на API.
  3. Помощници: Съдържа всички често използвани функции в контролерите. Добра практика е да се абстрахира логиката, свързана с услугите на трети страни (AWS, Kafka и др.) като помощни функции.
  4. Междинен софтуер: Съдържа функциите на междинния софтуер, които се използват в приложението.
  5. Модели: Съдържа моделите на бази данни, които допълнително се използват за съхраняване и извличане на данни. В този пример използваната база данни е MongoDB, но ако възнамерявате да използвате релационна база данни, тогава тази папка може да действа като слой база данни за приложението.

По-долу можете да намерите кода за начален шаблон на ExpressJs с горната структура на папките и примерен API.