될때까지

((기업협업3)) node.js + mysql + CRUD 특정 유저 조회 본문

프로젝트/wecode : 기업협업

((기업협업3)) node.js + mysql + CRUD 특정 유저 조회

랖니 2022. 8. 18. 21:01
728x90

특정 유저 조회하는 코드를 아래와 같이 작성했다.

// 특정 유저 정보 가져오기
router.get("/:userId", async (req, res, next) => {
  try {
    const userId     	 = req.params.userId;         
    const sql            = `select * from users where user_id=${userId}`;
    const [rows, fields] = await db.query(sql);
    // console.log(rows)
    if (rows.length) {
        // console.log('데이터있음')
        return res.status(200).json({ message: "success", result: rows });
    } else {
        // console.log('데이터없음')
        return res.status(404).json({message:"USER_NOT_FOUND"})
    }
    
  } catch (e) {
    console.log(e.message);
  }
});

첫번째 난관

node에서는 path parameter로 들어온 값을 어떻게 사용할 수 있을까? 참고자료

-> 변수이름 앞에 ':'을 사용하면 req.params.변수이름 으로 해당 값을 사용할 수 있다.

해당 값을 sql문 안에 사용해야하는데, 파이썬 f스트링처럼 자바스크립트에서는 백팃와 달러중괄호로 사용이 가능한가보다. 

 

두번째 난관

들어온 패스 파라미터의 값이 존재하는 경우에만 유저정보를 보여주고, 없는 유저인 경우 404 not found 처리를 하고 싶다. 그에 따른 분기처리를 해야하는데 이 판단을 어떻게 자바스크립트로 짠담??

일단 먼저 존재하는 유저의 id값을 전달했을 때와 없는 유저 id를 요청했을 때의 결과를 console로 찍어봤다. 그랬더니 존재하는 유저의 경우에는 [ { user_id: 1, name: '김치', age: 13 } ] 로 반환이 되고, 없는 경우에는 [] 가 반환이 됐다.

파이썬의 리스트가 자바스크립트에서는 배열이다. 배열의 빈 값을 어떻게 처리할까 또 구글링

비루한 검색어는 ' javascript array empty check' 결과는 요기

-> arr.length를 사용하면 된다고 한다.

if/else와 arr.length를 사용해서 그렇게 분기처리까지 완료했다!!

 

정말 작은 결과물이지만.. 3일만에 뭔가를 '해냈다' 감격 😭😭😭😭

있을 때
없을 때

 

728x90