Size: a a a

NestJS — русскоязычное сообщество

2020 March 03

MY

Michael Yali in NestJS — русскоязычное сообщество
в общем, пора выключать всё и отдыхать
источник

W

Wacker in NestJS — русскоязычное сообщество
а, все. Догнал
источник

ЮК

Юрий Косяков in NestJS — русскоязычное сообщество
Alexander Panko
ооо) магия) отпишись как найдешь причину, интересно даже
Я нашёл причину: к сожалению или к счастью она не связана с конфигами.

В typeorm есть класс ReturningResultsEntityUpdator.ts, в котором есть такой код:

if (this.queryRunner.connection.driver instanceof OracleDriver && insertResult.raw instanceof Array && this.expressionMap.extraReturningColumns.length > 0) {
               insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {
                   newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];
                   return newRaw;
               }, {} as ObjectLiteral);
           }
     
Условие отрабатывает только для БД oracle и преобразует возвращаемые результаты в подходящий вид (по аналогии с другими БД).

Непосредственно проблема заключается в том, что в Jest context глобальный объект Array заменяется на что-то другое и instanceof Array возвращает false, хотя должен true.

В jest на это заведен баг https://github.com/facebook/jest/issues/2549, который судя по всему ещё и завязан на поведение vm https://github.com/nodejs/node-v0.x-archive/issues/1277.

Замена insertResult.raw instanceof Array на Array.isArray(insertResult.raw) помогает, но таких мест как минимум 4. Вот думаю делать ли PR в typeorm 🤯
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Сделать pr в typeorm... как знакомо😞
источник

AP

Alexander Panko in NestJS — русскоязычное сообщество
Юрий Косяков
Я нашёл причину: к сожалению или к счастью она не связана с конфигами.

В typeorm есть класс ReturningResultsEntityUpdator.ts, в котором есть такой код:

if (this.queryRunner.connection.driver instanceof OracleDriver && insertResult.raw instanceof Array && this.expressionMap.extraReturningColumns.length > 0) {
               insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {
                   newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];
                   return newRaw;
               }, {} as ObjectLiteral);
           }
     
Условие отрабатывает только для БД oracle и преобразует возвращаемые результаты в подходящий вид (по аналогии с другими БД).

Непосредственно проблема заключается в том, что в Jest context глобальный объект Array заменяется на что-то другое и instanceof Array возвращает false, хотя должен true.

В jest на это заведен баг https://github.com/facebook/jest/issues/2549, который судя по всему ещё и завязан на поведение vm https://github.com/nodejs/node-v0.x-archive/issues/1277.

Замена insertResult.raw instanceof Array на Array.isArray(insertResult.raw) помогает, но таких мест как минимум 4. Вот думаю делать ли PR в typeorm 🤯
wow) с левел апом) непонятно зачем это jest-у
источник

ЮК

Юрий Косяков in NestJS — русскоязычное сообщество
Sviatoslav
Сделать pr в typeorm... как знакомо😞
Это не имеет смысла?)
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Юрий Косяков
Это не имеет смысла?)
Нужно верить в лучшее, бросай ссылку, поддержим лайками.
источник

ЮК

Юрий Косяков in NestJS — русскоязычное сообщество
Если всё-таки решусь, то брошу, спасибо :)
источник

ЮК

Юрий Косяков in NestJS — русскоязычное сообщество
В общем оказалось, что это исправлено относительно недавно: https://github.com/typeorm/typeorm/pull/5539/files
источник
2020 March 04

IK

Illia Kononyuk in NestJS — русскоязычное сообщество
Кто подскажет, как считать raw данные, что приходят на эндпоинт как json?

Приходит @Body дает обьект типа { '{ "foo": "bar''}' : "" }
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Illia Kononyuk
Кто подскажет, как считать raw данные, что приходят на эндпоинт как json?

Приходит @Body дает обьект типа { '{ "foo": "bar''}' : "" }
@Req()
источник

IK

Illia Kononyuk in NestJS — русскоязычное сообщество
?
источник

IK

Illia Kononyuk in NestJS — русскоязычное сообщество
Я не могу отстрелить как конвертнуть эту дичь в нормальный формат
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Ну так не передавай дичь
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Object.keys(obj).map(item => JSON.parse(item))
источник

K

Khaa in NestJS — русскоязычное сообщество
Добрый вечер, у кого нибудь найдеться статя или пример использования Mailgun service в нутри MailerModule.forRoot() ?
источник

YT

Yurii Tryfonkov in NestJS — русскоязычное сообщество
Привет. Подскажите, пожалуйста, по проектированию БД.
Есть оборудование с конкретной технологией. У  этого оборудования свои характеристики. Технологий несколько.
Таблицы:
1. Machine (здесь общий поля для всех технологий: габаритные размеры, цена и прочее)
2. MachineParameter (здесь уникальные характеристики, поля: id, name, unit, value)
3. Machine_MachineParameter (промежуточная таблица, для many-to-many)
Правильный подход?
Меня смущает то, что когда нужно будет получить конкретные характеристики оборудования, то не факт, что они там будут. Например, пользователь в UI открыл справочник, открыл запись, добавил одну характеристику любую, сохранил. А некий расчет предполагает наличие другой характеристики, которую пользователь не указал. Т. е. все таки нужно задать список полей для оборудования конкретной технологии?
источник

LK

L K in NestJS — русскоязычное сообщество
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Yurii Tryfonkov
Привет. Подскажите, пожалуйста, по проектированию БД.
Есть оборудование с конкретной технологией. У  этого оборудования свои характеристики. Технологий несколько.
Таблицы:
1. Machine (здесь общий поля для всех технологий: габаритные размеры, цена и прочее)
2. MachineParameter (здесь уникальные характеристики, поля: id, name, unit, value)
3. Machine_MachineParameter (промежуточная таблица, для many-to-many)
Правильный подход?
Меня смущает то, что когда нужно будет получить конкретные характеристики оборудования, то не факт, что они там будут. Например, пользователь в UI открыл справочник, открыл запись, добавил одну характеристику любую, сохранил. А некий расчет предполагает наличие другой характеристики, которую пользователь не указал. Т. е. все таки нужно задать список полей для оборудования конкретной технологии?
Внутри базы создай все сущности и запросами попробуй вытащить данные, птом переноси на орм
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
ILshat Khamitov
Внутри базы создай все сущности и запросами попробуй вытащить данные, птом переноси на орм
Left join когда сделаешь Там будет null, тоесть характеристики все будут
источник