Node.js 서버에서 동적으로 HTML 생성하는 방법
이 글에서는 Node.js를 사용하여 간단한 웹 서버를 구축하고, 서버에서 동적으로 HTML을 생성하여 응답하는 기본적인 방법에 대해 알아보겠습니다.
Node.js 모듈
Node.js에서 웹 서버를 구축하기 위해 주로 사용되는 모듈은 http
와 url
입니다. 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 공식 문서: Node.js에 대한 자세한 정보와 문서를 제공합니다.
- Node.js 시작 가이드: Node.js를 처음 사용하는 사용자를 위한 가이드입니다.
- Node.js HTTP 모듈 문서: HTTP 서버와 클라이언트를 생성하기 위한 모듈에 대한 문서입니다.
관련 이전 게시글
이 글이 도움이 되셨다면 공유 부탁 드립니다.