базы во вложенных роутах Express?
Не нужно так делать, инкапсулируй логику работы с БД
Где инкапсулировать? Может пример есть какой-то? Примеров много, но они как-то не очень помогают.
Импортируй нужную структуру(модель) напрямую в роуте
Но тогда это будут разные соединения же. А какой смысл дергать это соединение на каждый чих?
почему разные?
Роуты вынесены в отдельные файлы. И импортируются. В роутах будет вызываться нужный контроллер. Так вот? получается, что в импортируемые роутеры мне нужно как-то передать соединение
там будет один и тот же объект импортирвоаться
Может я в этом не разобрался еще совсем. Но вы хотите сказать, что объект, который импортируется в разных файлах - один и тот же и создается в единственном экземпляре?
require всё кеширует, да. естественный синглтон
Как напишешь так и будет
Вот это поворот... Это прямо шок-контент для меня
Я в шоке, реально это так работает. Протестировал на роутах в разных файлах и require реально использует один объект базы. Это выворачивает наизнанку мое понимание node js и построения архитектуры. Я все извращался через dependency injection, а тут оказывается все работает иначе. Где об этом можно узнать подробнее? Почему-то я не видел на курсах этого, или пропустил что-то
а как ты теперь мокать будешь базу для тестов?
А я пока не использую тесты, но вопрос интересный. Мне в этом только предстоит разобраться
Есть какой-то курс, где можно нормально это все изучить?
ну, в общем, тот же jest умеет мокать модули. но лично мне наоборот удобнее с DI
стыдно сказать, но я не смотрел ни одного курса...
вот рили? прям ни одного?
по ноде
онли дока?
ну я гуглил если проблемы возникали. но вообще надо бы и посмотреть курсы. для систематизации знаний, так сказать
Я пытался. По идее это более очевидно, но абсолютно не понятно как местами принцип единственной ответственности применить. Как в том же Express распространить необходимые связи? Пока не понятно
Обсуждают сегодня