Найчастіше Node.js API створюється за допомогою мідлеварів. У їхньому ланцюжку необхідно передавати стан. Наприклад, в мідлеварі Auth ми провалідували токен і визначили користувача, до якого нам необхідний доступ в наступних мідлеварах. Навіть синьйор розробники додають стан прямо в корінь об'єкта response або request. Як результат, необхідно розширювати типізацію самої бібліотеки. Але автори бібліотек вже передбачили, куди ви можете додати ваш стан. Ось список:
👉 express – res.locals. Якщо ви звикли працювати саме з req, то нагадую що можна використовувати req.res.locals.
👉 fastify – fastify.decorateRequest. Чудова ідея. Перш ніж покласти щось в об'єкт – розшир його.
👉 koa – ctx.state. Найінтуїтивніше зрозумілий підхід. На жаль, бібліотека не розвивається та втратила свою популярність.
👉nest – залежно від адаптера ми використовуємо express чи fastify, тому дотримуємося їх рекомендацій. У контролерах краще використовувати
createParamDecorator для звернення до стану.