[node.js] HTTP 모듈로 서버 만들기, 라우팅

jini.choi·2024년 3월 31일

node.js

목록 보기
4/5

HTTP 모듈로 초간단 서버 만들기

const http = require("http");

//http 모듈에서 서버를 만들때 createServer 메서드 사용
const server = http.createServer((req, res) => {
  console.log("요청 발생");
});

//서버를 실행시킬 때는 만든서버(server)에 listen메서드 사용
//실행 시킬때 포트번호 지정시켜줘야힘
server.listen(3000, () => {
  console.log("서버 실행중");
});
  • node.js 터미널 실행할때 cd로 해당폴더 접근 후 node 파일이름(server-1.js) 명령어 치면됨

  • 서버 실행 후 브우저창에서 http://localhost:3000/로 접속하면 현재 요청 발생할 때 어떻게 처리할지 지정안했기 때문에 브라우저엔 아무것도 안나오지만 요청이 발생됨

req가 어떠한 정보를 담고있는지 확인(요청 객체 확인)

const http = require("http");

//req가 어떠한 정보를 담고있는지 확인
const server = http.createServer((req, res) => {
  console.log(req);
});

server.listen(3000, () => {
  console.log("서버 실행중");
});

http://localhost:3000 로 접속 ->

res가 어떠한 정보를 담고있는지 확인(응답 객체 확인)

  • 응답 객체 안에는 헤더와 본문으로 구성
  • 내가 가져오는 파일형태를 헤더에서 처리(txt, json 등)
// 응답 객체 확인하기 - 응답 헤더, 응답 본문, 응답 종료 

const http = require("http");

//요청을 서버로 보내고 서버에서 그 요청에 대한 응답을 보내면 그 연결이 바로 끊기게 됨
const server = http.createServer((req, res) => {
  // 내가 사용할 콘텐츠 타입이 무엇인지 지정
  res.setHeader("Content-Type", "text/plain");
  //write메서드 사용해서 화면에 그려줌
  res.write("Hello Node");
  //end메서드를 사용해 응답이 명확히 끝난것을 지정
  res.end();
});

server.listen(3000, () => {
  console.log("서버 실행중");
});

http://localhost:3000 로 접속 ->


라우팅

  • 라우팅이란 클라이언트에서 들어오는 요청에 따라 그에 맞는 함수를 싱행

  • 예) nodsjs.org 사이트에서
    nodsjs.org/en/about로 요청하면 About Node.js화면으로 이동

  • 라우팅을 이용하면 사용자가 입력하는 URL에 따라 다른 내용을 보여줄 수 있음

  • GET이나 POST, PUT DELETE같은 요청 메서드에 따라 처리할 함수를 다르게 연결할 수도 있음

  • 아래는 초간단 예시고 나중에 라우팅할게 많기 때문에 Express라는 프레임워크 사용

const http = require("http");

const server = http.createServer((req, res) => {
  // req.url : 요청경로 가져옴
  // req.method : 요청 메소드 가져옴
  const { url, method } = req;

  res.setHeader("Content-Type", "text/plain");

  if (method === "GET" && url === "/home") {
    res.write("home");
    res.end();
  } else if (method === "GET" && url === "/about") {
    res.end("about"); //그려줄게 한개면 end에 넣어도됨
  } else {
    res.end("not found");
  }
});

server.listen(3000, () => {
  console.log("서버 실행중");
});



profile
개발짜🏃‍♀️

0개의 댓글