Зачем вокруг существующего репозитория обертку пишешь?
я думаю так правильно
Почему?
ну я спрашивал в чате, где обычно люди архитектурные вещи спрашивают и они сказали, что так правильно делать, явно они лучше знают
Ну что значит сказали. Надо понимать зачем ты это делаешь
там очень много сообщений было, я много спрашивал. Может тебя просто смутило то что названия одинаковые
А чем они отличаются?
вроде как переменная в res по окончанию запроса стирается, а res.app.locals не стирается, и действительно при повторном запросе переменная остаётся, по этому я хз как мне из multer правильно без кастылей передать данные в контроллер
Я про отличие trackRepository от TrackRepository
Я про отличие TrackRepository от репозитория, который ты получаешь для Track
trackRepository это дефолтная работа с сущностью базы данные, то есть методы trackrepository.find, trackRepository.findOne и так далее, а Trackrepository это свой уровень абстракции, чтобы не писать один и тот же код, так мне удобно и это не считается не правильным
Кем это не считается неправильным? А можно было твой TrackRepository отнаследовать от дефолтного и иметь один класс (и слой) вместо двух?
Ни один из вопросов не понял? Если только второй, то смотри: getRepository возвращает объект какого-то класса, я правильно понимаю? Если бы твой класс наследовался от этого класса, то тебе не надо было бы получать инстанс этой дефолтной сущности, у тебя её методы и поля были бы доступны через this Так можно было сделать?
Я не знаю что там у тебя происходит и что можно сделать. Я просто спрашиваю, потому что твой код действительно вызвал сомнения Разве getRepository (Track) возвращает инстанс класса Track?
на первый вопрос, я спрашивал у людей в чате посвященном архитектуре, там большинство не было против такой абстракции
ты работал с typeorm?
нужно запрашивать репозиторий как я изначально делал, так как при расширении класса TrackRepository, хотя и методы добавляются те же самые, но типизация отсутсвует, да и к тому же документация советует делать именно this.trackRepository = dataSource.getRepository(Track);
Ради интереса глянул документацию, и там написано другое In order to extend UserRepository functionality you can use .extend method of Repository class: export const UserRepository = dataSource.getRepository(User).extend({....
честно меня мало это волнует, я явно ничего неправильного не делаю, ты меня уводишь в какой то другой вопрос, который мне мало интересен, когда есть актуальный с multer'ом
Ну это смотря что понимать под "неправильно". Плохо написанный код может давать нужный результат, причём зачастую это нормальная ситуация, и если считать такой подход правильным - тогда всё ок
он не может быть там плохо написан, именно в репозиторием над реплзиторием не может, я сейчас пример скину
не буду скидывать в общем, в падлу, это и так понятно что там нельзя плохо сделать
Возможно, я не знаю Но я смотрю на код и не понимаю почему есть два разных TrackRepository. Думаю будет полезно если ты сможешь объяснить почему плохо расширять тот репозиторий, который даёт typeorm
да, я скину сейчас скрин, покажу зачем я так делаю, секунду
в общем, это метод как раз моего UserRepository, для того чтобы запросить пользователя по айди, я так же подтягиваю в поле relations связи, а отстальные подтягиваются по дефолту, это описано в самой сущности в декораторе Column. То есть мне не нужно много раз переписывать эти 3 строчки, я просто пишу const findUser = await userRepository.findUserById(3) Там может быть больше чем 3 строчки, ну в общем, здесб ошибиться вряд ли получится
Это вообще никак не связано с тем, что я хотел узнать Мне было интересно почему ты создал новый класс TrackRepository и в нём подтянул репозиторий вызовом getRepository (Track), а не стал расширять "дефолтный" репозиторий для Track (если я правильно понимаю, он как раз возвращается вызовом getRepository) Мне кажется что репозиторий над репозиторием это весьма странная конструкция, но я практически не знаком с typeorm, и если для него это нормально, хочется понять почему
я typeorm понял за 2 дня, после sequelize, я корректно сказать не могу, но мне посоветовали сделать это опять же в архитектурном чате
Ясно, что ничего не ясно :-/ А что за чат?
Почитал, там один человек идею репозитория над репозиторием охарактеризовали матерным словом, другой ответил что если либа позволяет расширять репозиторий, то стоит именно расширять Возможно ты неверно трактуешь то, что пишут
может быть, но я же кусок кода прям скинул туда, наверно заметили бы, что я делаю что то не так, можешь показать что ты имеешь в виду под расширением репозитория?
Я же уже цитировал доку typeorm: typeorm.io/custom-repository#how-to-create-custom-repository
то есть я неправильно делаю думаешь?
я думаю шо ты глупый просто
Я думаю что ты не стараешься разобраться самостоятельно, не пытаешься понять почему именно так, и можно ли как-то иначе
что значит не стараюсь разобраться? Перенимать опыт других это плохо? Или как по твоему надо разбираться самому
Он сам тоже "глупые" вопросы задаёт https://t.me/nodejs_ru/848695
хзхз, я же по сути в телеграме аноним, меня особо никто не знает, лучше задать глупые вопросы, всë равно найдëтся тот кто сможет дать ответ
Согласен, это я в твою поддержку скинул ссылку на его проблему которую он пытался решить. Она тоже может показаться "глупой", хотя это по факту не имеет значения. Есть вопрос - задавай, разбирайся в проблеме, а то потом будешь в монге хранить "неструктурированные неважные данные"
А вот последняя фраза прям душная)
Чел назвал меня глупым, я ему по кд на вопросы отвечаю, которые в доке легко ищутся Ты чего лезешь?
усё, срача не будет
даааа, я так и хотел
Такой вопрос, я тут мб вклинюсь, но разве репозиторий не должен абстрагировать от конкретной бд и библиотеки? Тогда почему оно создается как я понял по документации - средствавми TypeORM
я задавал кста этот вопрос у кого то, я перешлю ответ
Обсуждают сегодня