Како организовати Екпресс контролере за велике базе кодова

Пре три године почео сам да развијам Екпресс.јс АПИ за компанију. Питао сам се која би могла бити најбоља архитектура контролера која би остала организована како кодна база расте.

Под утицајем једра или шина и својим истраживањима, дошао сам да створим свој систем. Нисам желео да преоптеретим свој пројекат користећи комплетан оквир као што је Саилс, већ радије бирам лакше зависности када је потребно.

Тако сам креирао систем организације за контролере апликације који сам упарио са домаћим утоваривачем . Од тада сам обоје побољшао захваљујући искуству које сам стекао применом на другим пројектима.

Данас сам довољно самоуверен у коришћење ове методе, јер су резултати убедљиви.

Колико знам, користи га неколико великих компанија. Поједностављује укључивање нових програмера јер олакшава читање базе кодова.

✅ Ево како поставити чисту архитектуру контролера.

Структура

Ако не предвиђате раст апликације, брзо ћете добити неорганизовану базу кода. Начин организације организовао сам тако да има широку компатибилност, што значи да једног дана нећете бити закључани у неку врсту случаја коришћења који не можете решити овом методом.

Подесите стабло датотека

  • Групне руте у контролерима
  • Направите фасцикле за сваки контролер
  • Направите датотеку за усмеравање у сваком контролеру која описује путању до сваке руте, метод који треба позвати, опционално придружени међупрограм и ниво ограничења.
  • Направите датотеку за радње сваког контролера која садржи методу за извршење и међупроизводе .
  • Направите датотеку спецификација за тестирање

Да видимо како то изгледа.

Не плашите се стварања пуно датотека . То не успорава развој, а вашу базу кодова чини уредном и прозрачном. ✨

Учитајте своје руте

Да би ствари функционисале према горе дефинисаној структури, морамо да користимо једноставан лоадер који сам креирао: Лумие. Проћи ће кроз ваше контролере, прочитати датотеке дефиниција и учитати ваше руте.

То је мали пакет, који можете проверити у изворни код на ГитХуб.

Усмеравање датотека

Дизајнирани су тако да их је лако читати. Сврха је брзог прегледа датотека у .роутинг-у . У следећем примеру биће креиране три руте:

  • [ПУТ] / корисник
  • [ГЕТ] / корисник
  • [ГЕТ] / корисник / ресетовање лозинке

Питате се зашто су руте са префиксом „ корисник “ иако то није описано у дефиницији рутирања. Лумие користи име фасцикле у којој је датотека за усмеравање за префикс рута.

Ево нас controllers/user/user.routing.js. Да се userдиректоријум налазио у подмапи, adminна пример, руте би имале префикс admin/user.

Имајте на уму да необавезно pathпоље можете проследити дефиницији рутирања, тако да ће се користити уместо подразумеваног.

Акције и Миддлеварес

Као што видите горе, свака конфигурација рута има метод акције који није ништа друго до логика коју треба извршити када позовемо вашу АПИ руту. Препоручујем да се сачува у једној датотеци: једна метода акције и опционално придружени међупродукт .

Ограничења

За сваку конфигурацију рута одабрат ћете повезани ниво ограничења. Вредност нивоа проследиће се функцији ограничења коју ћете створити да би Лумие радио. Погледајте како да иницијализујете Лумие помоћу сопствене функције ограничења.

Ово би требала бити само функција која враћа класични експрес међуопрема.

Закључак

Већ неко време користим ову методу. Волим да имам овакав самопоуздан оквир који треба следити када се развијем. На крају, помаже ми да задржим лепу базу кодова и да не користим пречице попут писања превише логике у једну датотеку или дефинисања руте у неприкладној датотеци.

Хвала за читање. Реците ми у коментарима шта мислите о организовању контролора на овај начин.

Ако вам је овај чланак био користан, испустите га? ?