Node.js 학습 후 정리한 포스팅 입니다.
이번 포스팅에서는 Node.js에 대해 학습합니다.
I) 문제
Express를 통해 API 설계 중 Dao에서 내가 원하는 결과 외에 다른 데이터가 나왔다.
// 2 - 5 책 모임의 소속 회원의 이름, 상태메시지, 현재 상태를 조회함
module.exports.clubMember = async (connection, [club_id]) =>{
const clubSearchQuery =`SELECT UserInfo.user_id, UserInfo.now_reading, UserInfo.profile_message FROM UserInfo LEFT JOIN ClubMember ON UserInfo.user_id = ClubMember.user_id LEFT JOIN ClubInfo ON ClubMember.club_id = ClubInfo.club_id WHERE ClubInfo.club_id = ?;`;
const clubSearchRow = await connection.query(clubSearchQuery, [club_id]);
return clubSearchRow;
}
PostMan API 문서로 확인을 해보면 아래와 같았다
내가 불러온 정보 외에 _buf 어쩌고 저쩌고 이런 정보가 계속 같이 받아졌다...
추가로 받아오는 데이터는 ColumnDefinition이었다.
MySQL에서 query() 함수는 rows, fields를 반환한다.
아래와 같이 코드를 수정하여 해결할 수 있었다.
// 2 - 5 책 모임의 소속 회원의 이름, 상태메시지, 현재 상태를 조회함
module.exports.clubMember = async (connection, [club_id]) =>{
const clubSearchQuery =`SELECT UserInfo.user_id, UserInfo.now_reading, UserInfo.profile_message FROM UserInfo LEFT JOIN ClubMember ON UserInfo.user_id = ClubMember.user_id LEFT JOIN ClubInfo ON ClubMember.club_id = ClubInfo.club_id WHERE ClubInfo.club_id = ?;`;
const clubSearchRow = await connection.query(clubSearchQuery, [club_id]);
return clubSearchRow[0];
}
더 직관적으로 표기하는 방법은 아래와 같다.
// 2 - 5 책 모임의 소속 회원의 이름, 상태메시지, 현재 상태를 조회함
module.exports.clubMember = async (connection, [club_id]) =>{
const clubSearchQuery =`SELECT UserInfo.user_id, UserInfo.now_reading, UserInfo.profile_message FROM UserInfo LEFT JOIN ClubMember ON UserInfo.user_id = ClubMember.user_id LEFT JOIN ClubInfo ON ClubMember.club_id = ClubInfo.club_id WHERE ClubInfo.club_id = ?;`;
const [rows, fields] = await connection.query(clubSearchQuery, [club_id]);
return rows;
}
PostMan 확인 시 내가 원하는 정보만 가져오는 것을 확인할 수 있다.
II) REF
https://stackoverflow.com/questions/57029074/getting-schema-info-in-mysql-query
https://stackoverflow.com/questions/69599546/why-do-mysql-query-show-columndefinition
https://github.com/sidorares/node-mysql2#using-promise-wrapper
*유의사항
- Node.js 공부 중인 인공지능공학과 학부생이 공부하여 남긴 정리입니다.
- 정확하지 않거나, 틀린 점이 있다면 댓글로 알려주시면 감사하겠습니다.
'Server Developer > Node.js' 카테고리의 다른 글
[Node.js] 인스타그램 클론코딩 (프레임워크 구조) (3) | 2023.01.07 |
---|---|
[Node.js] 인스타그램 클론코딩 (Restful API) (8) | 2022.12.31 |
댓글