nodejs mysql join 데이터를 간편하게 json으로 정제하기
array.forEach 함수의 활용
forEach()는 오름차순으로 배열에 있는 각 요소에 대해 한 번씩 callback을 실행한다. 삭제 또는 비초기화된 인덱스 속성에 대해서는 호출되지 않는다.
callback은 다음 세 인수와 함께 호줄된다. 요소 값, 요소 인덱스, 순회될 배열
받아온 rows를 forEach 함수를 사용하여 정체
정제하는 함수
function(err,rows){
var result = [];
var indexObject = {};
if(err){
console.log(err)
}else{
rows.forEach(function(row){
<!-- 해당 행의 id가 indexObject의 키값에 없을때 실행 -->
if(!(row.id in index)){
index[row.id]={
id: row.id,
name: row.name
};
<!-- 반환값에 추가 -->
result.push(index[row.id]);
}
해당 행이 인덱스에 있건 없건 간에 해당 인덱스의 내역을 체워줌
index[row.id].histories.push({
historyId:row.historyId,
historyName:row.historyName
});
})
console.log(result);
}
}