본문 바로가기

개발 관련 기타/웹

nodejs) getRandomItem - 임의로 1개 선택해서 반환하기 - 개발 기록 1

 

필요한 서비스

 

- db에서 random 으로 item 1개 선택

- 관련 정보 응답

 

서비스 설계

 

- getRandomItem: 

 

서비스 구현

 

- id list 받아옴

- Math.floor 사용해서 list 중 하나 선

- 해당 id 객체 받아옴

 

async function getRandomItem(req, res) {

  try {
    const itemIds = await Item.findAll({
      attributes: ['id']
    });
    if (itemIds.length === 0) {
      res.status(404).send('No items');
    } else {
      const randomIndex = Math.floor(Math.random() * itemIds.length);
      const randomItemId = itemIds[randomIndex].id;
      const randomItem = await Item.findByPk(randomItemId);
      res.status(200).json(randomItem);
    }
  } catch (error) {
    console.error('Error fetching random item:', error);
    res.status(500).send('Error fetching random item');
  }

}