Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 April 14

S

Susa in NodeUA - JavaScript and Node.js in Ukraine
Лайк
источник

S

Susa in NodeUA - JavaScript and Node.js in Ukraine
Нужно фича в телеге чтобы ставить лайки ща комменты, кто работает у Паши?
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
Ну вот у меня проект на TypeORM. Большая часть запросов автогенеренные. Чуть посложнее используют его query builder. Но начиная примерно с 15-20 строк запрос на чистом SQL читается гораздо лучше, чем на query builder’е, и мы их в чистом SQL и держим. У нас запросы и по 70 строк есть.
источник

АМ

Андрей Москаленко... in NodeUA - JavaScript and Node.js in Ukraine
наверно так лучше всего, какой-то круд через ORM, что-то сложное через SQL
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
У нас есть один-два запроса, которые надо бы написать на чистом SQL, но они написаны на query builder, и длинной строк 30-50. Их бы переписать, но они и так работают, и мне не приоритетно.
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
как вы совмещаете абстракции орм и собственные запросы? вот я привык видеть у орм-ок подход типа active record:

await MyModel.find({id: 1})

а как у вас выглядит вызов чистого sql в одной функции где нужен 1 запрос из орм, второй ваш ручками написаный?
источник

VP

Valentyn Pogrebinsky in NodeUA - JavaScript and Node.js in Ukraine
Мне нравится синтаксис  Sequelize в описании вложенных запросов, но из-за многоплатформенности с т.з. СУДБ он генерит странное. Был бы какой-то узко заточенный на postgresql или настраиваемый билдер. Я об этом в общем-то спросил
источник

VP

Valentyn Pogrebinsky in NodeUA - JavaScript and Node.js in Ukraine
TypeORM надо смотреть.  @listochkin спасибо
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine

await userRepository.find({ id })

await userRepository.manager.query(`любой SQL, даже не привязанный никак к таблице user`)


менеджер - это тайпормовская штука, которая держит коннекшен, управляет транзакционностью и тп. И у него есть метод, чтоб вызвать любой sql.

Обычно у любого ОРМа / query builderа есть способ достать коннекшен-объект и у него вызвать методы для прямого выполнения запросов. Например, в Java Hibernate ты тоже можешь из их объекта-сессии достать connection и с помощью JDBC запросы отправлять.
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
а если вы вызываете эти запросы из кода например с бизнес логикой, это разве ок что вы прям так пишете голый запрос?
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
+ что если понадобиться этот запрос еще где то
источник

F

Fuckboy in NodeUA - JavaScript and Node.js in Ukraine
Подскажите, пожалуйста, куда лучше всего ложить картинки или пдфы которые пришли на сервер? Постгрес плохой вариант? Сори за нубский вопрос
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
в папку где то на сервере, а файлы раздаешь тем же nginx
источник

VK

Vlad Kolomoets in NodeUA - JavaScript and Node.js in Ukraine
Я бы сохранял в файловой системе и хранил названия файлов в бд
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
потом когда уже тесно будет - можно переехать на s3 какой то
источник

F

Fuckboy in NodeUA - JavaScript and Node.js in Ukraine
понял, спасибо
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
это уже вопрос организации кода. Ты можешь строку


await с голым SQL


вынести в отдельную функцию / метод несложно. и потом замоккать ее для тестов, как вызовы методов репозитория, тоже можно. Особенно, с учетом того, что в JS переопределять функции несложно.
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
источник

VP

Valentyn Pogrebinsky in NodeUA - JavaScript and Node.js in Ukraine
Можно собирать имя файла под идентификатор какой-то свзанной записи, тогда легко в каком-то клиентском HTML вывести
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
Короче, ОРМы - ок, голый SQL - ок. Мешать одно с другим - ок.

Меньше ведитесь на местные мемчики в этом чате.
источник