Node.js 서버에서 동적으로 HTML 생성하는 방법

Node.js 서버에서 동적으로 HTML 생성하는 방법

이 글에서는 Node.js를 사용하여 간단한 웹 서버를 구축하고, 서버에서 동적으로 HTML을 생성하여 응답하는 기본적인 방법에 대해 알아보겠습니다.

Node.js 모듈

Node.js에서 웹 서버를 구축하기 위해 주로 사용되는 모듈은 httpurl입니다. http 모듈을 통해 서버를 생성하고 클라이언트의 요청을 처리할 수 있으며, url 모듈을 사용하여 요청된 URL을 분석하고 경로나 쿼리 스트링을 추출할 수 있습니다.

사용 예제

const http = require('http');
const url = require('url');

// 서버를 생성합니다.
const server = http.createServer((request, response) => {
    // URL 파싱
    const parsedUrl = url.parse(request.url, true);
    const pathname = parsedUrl.pathname.toLowerCase(); // URL 경로를 소문자로 변환
    const query = parsedUrl.query;

    // 루트 경로로 요청이 들어온 경우
    if (pathname === '/') {
        response.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
        response.end(`<html><body>${query.message || 'URL 받은 변수가 없습니다.'}</body></html>`);
    }
    // URL에 따라 해당 변수를 출력
    else if (pathname === '/html' || pathname === '/css' || pathname === '/javascript') {
        response.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
        response.end(`<html><body>${pathname.substring(1)}</body></html>`);
    }
    // 존재하지 않는 URL에 대한 처리
    else {
        response.writeHead(404);
        response.end('Not Found');
    }
});

// 서버를 지정된 포트(3000)에서 실행합니다.
server.listen(3000, () => {
    console.log('Server is running on port 3000');
});

이 예제 코드는 간단한 웹 서버를 생성하고, 루트 경로나 특정 경로에 따라 동적으로 HTML 응답을 생성하는 방법을 보여줍니다.

▼ 실행 결과

Node.js 서버에서 동적으로 HTML 생성 예제 실행 결과

이 글을 통해 Node.js를 사용하여 웹 서버를 구축하고, 동적으로 HTML을 생성하여 응답하는 기본적인 방법을 배웠습니다. 이를 바탕으로 다양한 웹 어플리케이션을 개발하는 데 활용해 보세요.

관련 문서

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤