uju's Tech

[Node.js] json data 객체 안에 객체 배열 추가하기 본문

Node

[Node.js] json data 객체 안에 객체 배열 추가하기

ujusy 2020. 7. 6. 18:28

<본 포스팅은 공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>

 

원래 response 되는 형태를 살펴보자.

 

{
  "id": 1,
  "name": "My1",
  "sales": 123,
  "tag": 1
}

 이러한 형태로 반환되는 객체에 recommendation이라는 속성을 추가하여 반환하고 싶었다. 

 

이를 위해서 먼저 recommendation이라는 배열을 만들어주고 push를 해주었다. 

이 부분에 대해서는 따로 포스팅 하도록 하겠다. 

 

push를 해주어 recommendation 배열을 만들어 주었는데 원하는 형태로 추가되지않고 아래와 같이 출력되었다.

data : {
 ...
 }
 recommendation : {
 
...
}

요구된 응답 형태는 아래와 같다.

 

{
  "id": 1,
  "name": "My1",
  "sales": 123,
  "tag": 1
  "recommendation" : [
  { "id": 3,
  	"name": "Myw",
  	"sales": 134,
  	"tag": 1
  }
  ]
}

간단해보이지만.. 시행착오를 겪어 수행하였다.ㅜㅜ..

 

먼저 recommendation을 넣은 배열을 선언해주고 추천 목록 3가지를 push를 통해 넣어주었다.

 구현한 코드를 살펴보자..!

const recommendation = [];

const querySales = `SELECT * FROM ${table} WHERE id NOT IN (?) ORDER BY sales DESC,id  limit 3`;
    const salesResult = await db.queryParam_Parse(querySales, [id]);
    if (salesResult.length === 0) {
      resolve({
        code: statusCode.OK,
        json: util.successFalse(statusCode.NOT_FOUND, resMessage.NO_EXIST),
      });
      return;
    }
    for (i = 0; i < salesResult.length; i++) {
      recommendation.push(salesResult[i]);
    }
    
    result[0].recommendation = recommendation;

위와 같이 배열에 push 후 result[0]에 recommendation 의 이름을 가진 배열을 추가해주었다..!!

 

굉장히 간단하지만..시행착오가 있어 포스팅 해보았다..ㅎㅎ!!

Comments