온라인 멘토와 함께하는 공부/JS

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

열공노년 2024. 5. 24. 12:53
반응형

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를 통해 응답 본문을 작성합니다.

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

반응형