Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
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
Archives
Today
Total
관리 메뉴

사고쳤어요

[Node.js] 과일 조회 서비스 구현하기 본문

웹 풀스택

[Node.js] 과일 조회 서비스 구현하기

kevinmj12 2025. 2. 19. 00:53
const express = require("express");
const app = express();

const fruits = [
  { id: 1, name: "apple" },
  { id: 2, name: "banana" },
  { id: 3, name: "watermelon" },
  { id: 4, name: "strawberry" },
];

다음과 같이 과일들의 정보가 저장된 배열이 있고, 과일 전체를 조회하는 GET 요청과 과일 개별을 조회하는 GET 요청을 작성하여 보자.

 

// 과일 전체 조회
app.get("/fruits", (req, res) => {
  res.json(fruits);
});

먼저 과일 전체는 어렵지 않다. 단순히 fruits를 전송해주면 된다.

 

// 과일 개별 조회
app.get("/fruits/:id", (req, res) => {
  let { id } = req.params;
  var fruit = "";

  fruits.forEach((fruit) => {
    if (fruit.id == id) {
      fruit = res.json(fruit);
    }
  });

  res.json(fruit);
});

하지만 과일 개별은 조금 까다롭다.

fruits라는 배열의 id를 조회하여 그 값이 일치해야 하기 때문이다.

위 코드에서는 forEach()를 사용하여 하나하나 id를 비교해가며 id에 해당하는 과일을 찾아 리턴하였다.

 

app.get("/fruits/:id", (req, res) => {
  let { id } = req.params;
  var fruit = fruits.find(fruit => fruit.id == id);

  res.json(fruit);
});

하지만 친절하게도 javascript에는 find라는 함수가 있다. 

find()를 통해 foreach에서 5줄로 작성했던 코드를 단 한 줄로 작성할 수 있게 되었다.

 

app.get("/fruits/:id", (req, res) => {
  let { id } = req.params;
  var fruit = fruits.find((fruit) => fruit.id == id);

  if (fruit) {
    res.json(fruit);
  } else {
    res.status(404).send(`${id}에 해당되는 값이 없습니다.`);
  }

  res.json(fruit);
});

여기서 더 나아가, 만약 id에 해당하는 fruit가 존재하지 않는 경우 res.status(404)를 통해 예외 처리를 진행해주면 끝이다.

 

Postman에서도 404에러와 함께 메시지가 잘 출력되는 것을 볼 수 있다!

 

const express = require("express");
const app = express();

const fruits = [
  { id: 1, name: "apple" },
  { id: 2, name: "banana" },
  { id: 3, name: "watermelon" },
  { id: 4, name: "strawberry" },
];

// 과일 전체 조회
app.get("/fruits", (req, res) => {
  res.json(fruits);
});

// 과일 개별 조회
app.get("/fruits/:id", (req, res) => {
  let { id } = req.params;
  //   var fruit = "";

  //   fruits.forEach((fruit) => {
  //     if (fruit.id == id) {
  //       fruit = res.json(fruit);
  //     }
  //   });

  var fruit = fruits.find((fruit) => fruit.id == id);

  if (fruit) {
    res.json(fruit);
  } else {
    res.status(404).send(`${id}에 해당되는 값이 없습니다.`);
  }

  res.json(fruit);
});

app.listen(3000);