Express 내가 원하는 결과 외에 추가적인 데이터가 나온다? - [{"_buf":{"type":"Buffer","data": [...], ... }

maketheworldwise·2022년 11월 7일
5


이 글의 목적?

최근에 프론트 개발을 하는 친구와 토이 프로젝트를 시작했다. 스프링으로 진행하려했지만 최근에 공부한 내용을 실습해보고자 하는 생각으로 express를 이용했다. 이번에는 간단한 내용이니 문제와 해결을 분리하지 않고 한번에 정리해보자. 😀

문제 & 해결

사실 에러라기보다 내가 원하는 결과 외에 추가적인 데이터가 나오는 문제다.

이 문제에 대한 해결책으로 하단의 코드처럼 간단하게 처리할 수 있지만 마음에 들지 않았다. 제 3자가 봤을 때 이해가 안되는 코드라고 생각했기 때문이다.

const result = await dataSource.query(
  `SELECT id, content FROM TEST`
);
return result[0];

다른 해결방법이 없을까 고민하면서 열심히 구글링하다가 다행히 나와 같은 문제를 겪은 사람을 발견할 수 있었다.

알고보니 추가적으로 나오는 데이터는 ColumnDefinition이라는 것을 알 수 있었다. 즉, mysql2를 이용하면 query() 함수는 rows, fields를 반환한다는 것이다. (문서도 확인해보니 rows, fields에 대한 설명이 나와있었다. 데헷 😛)

따라서 코드에 더 직관적으로 표현하기 위해서 다음과 같은 코드를 이용하여 프로젝트에 적용했다.

const [rows, fields] = await dataSource.query(
  `SELECT id, content FROM TEST`
);
return rows;

이 글의 레퍼런스

profile
세상을 현명하게 이끌어갈 나의 성장 일기 📓

0개의 댓글