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에서 Router를 통해 url 읽어내기 본문

웹 풀스택

Node.js에서 Router를 통해 url 읽어내기

kevinmj12 2025. 2. 4. 15:02

URL

URL이란 Uniform Resource Locator의 약자로 인터넷 상에서 웹 페이지가 어디에 있는지 위치를 알려주는 주소이다.

Node.js에서 현재 위치한 URL이 무엇인지를 출력해보도록 하자.

 

// server.js

let http = require("http");
let url = require("url");

function start() {
  function onRequest(request, response) {
    let pathname = url.parse(request.url).pathname;
    console.log("pathname: " + pathname);

    response.writeHead(200, { "Content-Type": "text/html" });
    response.write("Hello Node.js");
    response.end();
  }

  http.createServer(onRequest).listen(8888);
}

exports.start = start;

 

Node.js는 url이라는 편리한 모듈을 제공한다.

그리고 url.parse(request.url).pathname을 통해 현재 위치한 url을 불러올 수 있다.

 

 

실제로 서버를 실행하고 url을 입력하면 그 url이 그대로 출력되는 모습을 볼 수 있다.

(/favicon.ico는 브라우저가 자동으로 favicon.ico파일을 요청하기 때문에 출력되는 기본 동작이다)

 

하지만 우리는 url과 관련된 작업을 server.js가 아닌 router.js에서 처리하고 싶다.

router.js를 작성하여 연결하여보자.

 

Router

// router.js

function route(pathname) {
  console.log("pathname: " + pathname);
}

exports.route = route;

 

route() 함수는 pathname을 전달받아 출력하는 함수이다.

이제 router.js를 연결하여 사용해야 하는데, server.js와 연결하는 방법, 그리고 index.js와 연결하는 방법이 있을 것이다.

하지만 서버가 작동되는 구조를 생각해보면, index.js에 연결하여 server.js로 전달해주는 것이 더 좋을 것이다.

 

// index.js

let server = require("./server");
let router = require("./router");

server.start(router.route);

 

index.js에 router라는 변수를 정의하여 router.js를 연결하였다.

이후 server.js에 router의 route()함수를 전달하기 위해 server.start() 함수 내에 router.route를 추가하였다.

 

// server.js

let http = require("http");
let url = require("url");

function start(route) {
  function onRequest(request, response) {
    let pathname = url.parse(request.url).pathname;
    route(pathname);

    response.writeHead(200, { "Content-Type": "text/html" });
    response.write("Hello Node.js");
    response.end();
  }

  http.createServer(onRequest).listen(8888);
}

exports.start = start;

 

index.js에서 server.js로 route() 함수를 전달한다면, server.js에서도 route() 함수를 받을 준비가 되어야 할 것이다.

start() 함수의 파라미터에 route를 추가해준 뒤, 원하는 부분에 route() 함수를 호출한다.