본문 바로가기
온라인 멘토와 함께하는 공부/JS

[NodeJS] GET 요청에 따라 다른 응답을 주는 기능 추가

by 열공노년 2024. 5. 24.
반응형

GET 요청에 따라 다른 응답을 주는 기능 추가

GET 요청에 따라 다른 응답을 주기 위해, 요청 URL을 검사하고 각 경로에 맞는 응답을 보내도록 코드를 작성할 수 있습니다. / 경로와 /about 경로를 처리하는 예제를 아래에 작성해 보겠습니다.

1. 서버 코드 수정

server.js 파일을 다음과 같이 수정하세요:

// 필요한 모듈을 가져옵니다.
const http = require('http');

// 서버를 생성합니다.
const server = http.createServer((req, res) => {
  if (req.url === '/') {
    // 루트 경로 (/)에 대한 응답
    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.end('<h1>Hello, World!</h1>\n');
  } else if (req.url === '/about') {
    // /about 경로에 대한 응답
    res.writeHead(200, { 'Content-Type': 'text/html' });
    res.end('<h1>About Page</h1>\n');
  } else {
    // 기타 경로에 대한 응답 (404 Not Found)
    res.writeHead(404, { 'Content-Type': 'text/html' });
    res.end('<h1>404 Not Found</h1>\n');
  }
});

// 서버를 특정 포트에서 대기시킵니다.
const PORT = 3000;
server.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

2. 서버 실행

터미널에서 서버를 실행합니다. 기존 서버가 실행 중이라면 먼저 중지하고 다시 실행해야 합니다.

node server.js

3. 브라우저에서 확인

브라우저를 열고 다음 URL을 확인합니다:

  • http://localhost:3000/ -> "Hello, World!"가 <h1> 태그로 감싸져 출력됩니다.
  • http://localhost:3000/about -> "About Page"가 <h1> 태그로 감싸져 출력됩니다.
  • http://localhost:3000/abc와 같이 정의되지 않은 경로 -> "404 Not Found"가 <h1> 태그로 감싸져 출력됩니다.

코드 설명

  • req.url을 통해 요청된 URL 경로를 확인합니다.
  • 각 경로에 맞는 조건문 (if, else if, else)을 사용하여 응답을 처리합니다.
  • res.writeHead를 통해 응답 헤더를 설정하고, res.end를 통해 응답 본문을 작성합니다.

이렇게 하면 요청된 경로에 따라 다른 응답을 줄 수 있습니다. 필요에 따라 추가 경로를 정의하고 응답을 다르게 설정할 수 있습니다.

반응형