[부트캠프] 백엔드 - nodeJS 정리2

RedPanda·2022년 8월 16일
0

NodeJS

목록 보기
5/11

서버 만들기

http 모듈

  • 웹페이지의 모듈로, 서버를 만들어 처리할 수 있음.
const http = require("http");

http.createServer((rep, res) => {
  // createServer(callBack) : 서버를 만들며, .listen()으로 서버 요청을 함
    res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" }); 
  // 서버의 형식을 다룸
    res.write("<h1>hello<h1/>");
    res.end(); // res에 있는 값들을 반환
  })
  .listen(3000, () => {
    console.log("서버를 실행합니다.");
  }); // 3000번 포트에서 서버를 요청, 성공시 callback 호출

REST API와 http

: request로 요청을 받아오고, response로 응답을 처리해준다.

  • req.method : 요청 방법(REST)에 대한 값. 비교하여 처리

  • req.url : 요청하는 데이터의 url(key값)을 받아 각 url 별로 처리

const http = require("http");
const fs = require("fs").promises;

http.createServer(async (req, res) => {
    try {
      switch (req.method) {
        case "GET": // 주소의 key값을 요청받아 웹서버에 페이지 형식으로 응답해줌
          if (req.url === "/") {
            const data = await fs.readFile("./about.html");
            res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
            return res.end(data);
          } else if (req.url === "/about") {
            const data = await fs.readFile("./about.html");
            res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
            return res.end(data);
          }
          try { // url이 없을 때의 예외처리이지만 없으면 요청을 계속 받으려 함
          const data = await fs.readFile(`.${req.url}`);
          return res.end(data);
        } catch (err) {
          // 주소에 해당하는 라우트를 못 찾았다는 404 Not Found error 발생
        }
          break;
        case "POST":
          break;
        case "PUT":
          break;
        case "DELETE":
          break;
        default:
          res.writeHead(404);
          return res.end("NOT FOUND");
      }
    } catch (err) {
      console.log(err);
    }
  })
  .listen(3001, () => {
    console.log("서버를 실행합니다.");
  });
profile
끄적끄적 코딩일기

0개의 댓글