@Isildur12

Как мерджить(обновлять) свойства обьекта с помощью Nestjs?

Здравствуйте, есть те кто с Nest.js работал? Как можно замерджить значения старого обьекта с новыми значениями(которые пришли с клиента), если допустим нужно перезаписать только те значения которые изменились, а не полностью обьект? Использую Patch запрос.
Как обычно такое делается, на примере таких данных? (С чистым Node.js и express к сожелению не работал). Базу данных пока не тащил, хочу понять как делать с обычным масивом items

//service 
 updateItem(id: string, updateItemDto: UpdateItemDto): Item
{

    const item = this.getItemById(id);

    const { name, lastname, prop1, prop2 } = updateItemDto;

    console.log(updateItemDto);

    return item;
  }
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Ткнуть в доку лучше готового к копипасте ответа
function filterObjectProps<O extends Record<string, unknown>, P extends keyof O>(obj: O, props: readonly P[]) {
  const entries: [P, O[P]][] = [];
  for(const prop of props) {
    if(prop in obj) {
      entries.push([prop, obj[prop]]);
    }
  }
  return Object.fromEntries(entries) as {
    [K in P]: O[K];
  };
}

// ...
updateItem(id: string, updateItemDto: UpdateItemDto): Item {
  const item = this.getItemById(id);
  return {
    ...item,
    ...filterObjectProps(updateItemDto, ['name', 'lastname', 'prop1', 'prop2'])
  };
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы