[Node.js] Dao에서 내가 원하는 결과 외에 다른 데이터가 나오는 경우

2023. 2. 4. 17:06·Server Developer/Node.js
반응형

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

 

Getting schema info in mysql query

I have a table in mysql database, which has three records. The table has 11 columns. I am using mysql2 for query; my query is: let mylist=[]; mylist = await pool.query( "SELECT * FROM mytable

stackoverflow.com

https://stackoverflow.com/questions/69599546/why-do-mysql-query-show-columndefinition

 

why do mysql query show ColumnDefinition

I am using mysql2 package. I am doing simple sql query in node. so why does it tur public async getTests(req: Request, res: Response): Promise<void> { const pool = await connect();...

stackoverflow.com

https://github.com/sidorares/node-mysql2#using-promise-wrapper

 

GitHub - sidorares/node-mysql2: fast mysqljs/mysql compatible mysql driver for node.js

:zap: fast mysqljs/mysql compatible mysql driver for node.js - GitHub - sidorares/node-mysql2: fast mysqljs/mysql compatible mysql driver for node.js

github.com

 

 

*유의사항

- Node.js 공부 중인 인공지능공학과 학부생이 공부하여 남긴 정리입니다.

- 정확하지 않거나, 틀린 점이 있다면 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

반응형
저작자표시 (새창열림)

'Server Developer > Node.js' 카테고리의 다른 글

[Node.js] 인스타그램 클론코딩 (프레임워크 구조)  (3) 2023.01.07
[Node.js] 인스타그램 클론코딩 (Restful API)  (8) 2022.12.31
'Server Developer/Node.js' 카테고리의 다른 글
  • [Node.js] 인스타그램 클론코딩 (프레임워크 구조)
  • [Node.js] 인스타그램 클론코딩 (Restful API)
성 언
성 언
AI 학과 3학년 학생이자 RAG 기반 LLM 챗봇 개발 회사에서 근무 중입니다. AI 챗봇 개발과 관련된 기술, 연구, 그리고 실험 과정에서 얻은 인사이트를 공유합니다. 최신 AI 기술을 함께 탐구하며 성장해 나가요!
    반응형
  • 성 언
    AI EON
    성 언
  • 전체
    오늘
    어제
    • AII
      • NLP
      • AI Paper Review
      • MLOps
      • Python
      • Algorithm
      • Memo
      • Server Developer
        • Node.js
        • DataBase&Data Engineering
        • Server Basic
      • MATH
        • Linear Algebra
        • AI
      • etc
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    NVML
    transaction
    Python
    트랜잭션
    백준
    더티 쓰기
    node.js
    Signature 초격차 패키지
    reranker
    배열의 모양 변경
    스택
    map 함수
    배타 잠금
    umc
    그리디 알고리즘
    다중 버전 동시성 제어
    파이썬
    Ubuntu-20.04 APM 소스 설치
    파이썬 문서 자동화
    word 자동화
    문서 자동화
    패스트캠퍼스 수강 후기
    [Numpy] squeeze & unsqueeze
    더티 읽기
    비반복 읽기
    docx-template
    팬텀 읽기
    리랭커
    c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
성 언
[Node.js] Dao에서 내가 원하는 결과 외에 다른 데이터가 나오는 경우
상단으로

티스토리툴바