Как можно получить данные в формате kebab case при использовании метода createQueryBuilder в typeorm при обновлении данных?

Как изменить формат возвращаемых данных на kebab case при использовании метода createQueryBuilder в typeorm при обновлении записей?
  • 6 октября 2023 г. 11:27
Ответы на вопрос 1
Для того чтобы получить данные в формате kebab case при использовании метода createQueryBuilder в TypeORM при обновлении данных, можно использовать функцию transform() и функцию snakeCase() из пакета lodash.

Первым шагом нужно установить lodash:

```
npm install lodash
```

Затем, импортировать функции, и использовать их внутри функции transform():

```typescript
import { getConnection, getRepository } from "typeorm";
import { transform, snakeCase } from "lodash";

// ...

const updateRecord = async (id: number, data: any) => {
  const repository = getRepository(MyEntity);
  const queryBuilder = repository.createQueryBuilder();
  
  // Используем метод where для указания id записи, которую нужно обновить
  queryBuilder.where("id = :id", { id });

  // Производим обновление записи
  await queryBuilder.update().set(data).execute();

  // Получаем обновленные данные
  const updatedData = await queryBuilder.getOne();

  // Преобразуем данные в формат kebab case
  const kebabCaseData = transform(updatedData, (result: any, value: any, key: string) => {
    result[snakeCase(key)] = value;
  }, {});

  return kebabCaseData;
};

// Использование функции для обновления данных
updateRecord(1, { name: "John Doe" }).then((data) => {
  console.log(data); // { name: "John Doe" }
});
```

Таким образом, вы получите данные в формате kebab case после обновления записей.
Похожие вопросы