Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

사고쳤어요

[Node.js] 유튜브 서비스 - channel에 userId 추가하기 본문

웹 풀스택

[Node.js] 유튜브 서비스 - channel에 userId 추가하기

kevinmj12 2025. 2. 21. 16:42

채널 생성하기

  // 채널 생성
  .post((req, res) => {
    let channel = req.body;
    let userId = channel.userId;
    let channelTitle = channel.channelTitle;

    if (!userId) {
      res.status(400).json({
        message: "userId가 포함되어있지 않습니다.",
      });
    } else if (!channelTitle) {
      res.status(400).json({
        message: "channelTitle이이 포함되어있지 않습니다.",
      });
    } else {
      channelDb.set(id++, req.body);
      res.status(201).json({
        message: `${channelTitle} 채널이 생성되었습니다.`,
      });
    }
  });

 

채널을 생성할 때 기존에는 channelTitle만을 받았지만 이제 userId를 추가하여 누구의 채널인지를 추가하려 한다.

이에 따라 req.body에서 userId와 channelTitle을 받아주고 예외처리를 진행한 뒤,

channelDb에 channel을 추가할 때 userId가 포함된 채널 정보를 저장해준다.

 

채널 조회하기

// 채널 전체 조회
  .get((req, res) => {
    if (channelDb.size) {
      var { userId } = req.body;
      if (userId == undefined) {
        res.status(404).json({
          message: "로그인이 필요합니다.",
        });
      } else {
        var channels = [];

        channelDb.forEach((val) => {
          if (val.userId == userId) {
            channels.push(val);
          }
        });

        if (channels.length) {
          res.json(channels);
        } else {
          res.status(404).json({
            message: "조회할 채널이 없습니다.",
          });
        }
      }
    } else {
      res.status(404).json({
        message: "조회할 채널이 없습니다.",
      });
    }
  })

채널을 조회할 때 로그인한 사용자의 채널 목록을 보여주려 한다.

위와 마찬가지로 userId를 추가로 받아주고 예외처리를 진행한 뒤,

forEach문에 if문을 하나 추가하여 userId가 일치하는 경우에만 channels 배열에 추가하도록 하였다.

그런데 forEach문을 통해 걸러낸 channels 배열 또한 비어있을 수 있기 때문에 여기서도 예외 처리를 진행해 주었다.