Преобразование ответа в стандарт ответа JSON в Nestjs

#json #typescript #nestjs #typeorm

Вопрос:

У меня возникла проблема с преобразованием результата моего объекта после его сохранения в базе данных, потому что я пытался следовать рекомендациям https://jsonapi.org / и преобразуйте мои ответы в стандарт Json.

Реализация, которую я сделал, не самая лучшая. Это:

   async findAll() {
    const data = new DataResponse<Product>();
    return await this.repository.find().then(value => {
      data.data = value;
      data.isError = false;
      data.message = "";
      data.statusCode = 1;

      return data;
    }).catch(e => {
      const error: HttpException = e;
      data.data = [];
      data.isError = true;
      data.message = error.message;
      data.statusCode = error.getStatus();

      return data;
    });
  }
 

Мой ответ json у меня такой:

 {
    "data": {
        "id": 1,
        "description": "Oreo",
        "price": "6.5",
        "category": "Oreo",
        "stock": 50,
        "createDate": "2021-10-28T14:11:47.454Z",
        "lastUpdateDate": "2021-10-28T14:11:47.454Z"
    },
    "message": "",
    "statusCode": 1,
    "isError": false
}
 

Комментарии:

1. Что именно вы хотите сделать?

2. Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Как написано в настоящее время, трудно точно сказать, о чем вы спрашиваете.

3. Альтернатива реализации, которую я делаю в своем сервисе, потому что я думаю, что создание экземпляра объекта типа response каждый раз, когда мне нужно вернуть данные в @Get (), является очень повторяющимся

Ответ №1:

почему бы не создать DTO или инициализировать и объект объекта, например new Product() , а затем присвоить значения, если вы хотите сохранить их в базе данных, а не в строковых объектах JSON ?. это решило бы вашу проблему.