예제코드를 아직 다운받지않았다면 아래 게시물을 수행한다.
https://standout.tistory.com/1383
url문자열을 이용하여 파일을 읽어와 정적 html템플릿에 적용하여 응답본문으로 전송한다.
var http = require('http');
var fs = require('fs');
var url = require('url');
// HTTP 서버를 생성합니다. 요청을 처리하는 콜백 함수를 전달합니다.
var app = http.createServer(function(request,response){
// 요청된 URL과 쿼리 문자열을 가져옵니다.
var _url = request.url;
var queryData = url.parse(_url, true).query;
var title = queryData.id;
// 기본 제목을 설정합니다.
if(_url == '/'){
title = 'Welcome';
}
// 파비콘 요청('/favicon.ico')이 들어온 경우 404 오류를 반환합니다.
if(_url == '/favicon.ico'){
return response.writeHead(404);
}
// HTTP 응답 헤더를 작성합니다. 상태 코드 200을 반환합니다.
response.writeHead(200);
// 데이터 디렉토리에서 파일을 비동기적으로 읽어옵니다.
fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
// 읽은 파일 내용을 HTML 템플릿에 적용하여 응답 본문으로 전송합니다.
var template = `
<!doctype html>
<html>
<head>
<title>WEB1 - ${title}</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="/">WEB</a></h1>
<ul>
<li><a href="/?id=HTML">HTML</a></li>
<li><a href="/?id=CSS">CSS</a></li>
<li><a href="/?id=JavaScript">JavaScript</a></li>
</ul>
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.end(template);
});
});
// 서버가 지정된 포트(3000)에서 요청을 수신하도록 설정합니다.
app.listen(3000);
'JavaScript > Node.js' 카테고리의 다른 글
fs.readdir, 파일목록 본문출력하기 (0) | 2024.02.07 |
---|---|
Node.js 조건문, else일때 response.writeHead(404) 404오류를 반환하다 (0) | 2024.02.07 |
Node.js 콘솔에서의 입력값 사용하기 process.argv (0) | 2024.02.07 |
Node.js 로 간단한 웹서버 만들기: 정적파일서버 (0) | 2024.02.07 |
Window Node.js 설치하기 (feat.Node.js, 자바스크립트가 갈수록 강력해지는 이유) (0) | 2023.12.07 |