[Node.js] 파일로 본문 구현

2024. 8. 14. 15:12· 클론코딩/생활코딩 Node.js
목차
  1. 1.본문 파일생성
  2. 2.파일 읽기
728x90

 

https://opentutorials.org/course/3332/21028

생활코딩님의 Node.js강의를 참고하였습니다.


 

1.본문 파일생성

data 폴더에 본문파일을 작성한다.

 

 

2.파일 읽기

data/ 디렉터리에서 title에 해당하는 파일을 읽어,
그 내용을 동적으로 생성된 HTML 페이지에 포함하여 응답합니다.
 // 해당 파일 읽기 (title에 해당하는 파일)
fs.readFile(`data/${title}`, 'utf-8', 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>
        <ol>
            <li><a href="/?id=HTML">HTML</a></li>
            <li><a href="/?id=CSS">CSS</a></li>
            <li><a href="/?id=JavaScript">JavaScript</a></li>
        </ol>
        <h2>${title}</h2>
        <p>${description}</p>
    </body>
    </html>
    `;
    response.end(template);                       // 응답 전송
});

 

 

 

 

 

 

 

 

 

// HTTP, 파일 시스템, URL 모듈 로드
var http = require('http');
var fs = require('fs');
var url = require('url');

// 서버 생성
var app = http.createServer(function(request, response) {
    var _url = request.url;                           // 요청된 URL
    var queryData = url.parse(_url, true).query;      // 쿼리 데이터 파싱
    var title = queryData.id;                         // 쿼리에서 'id' 추출
    console.log(queryData);

    if (_url == '/') {                                // 루트 요청 처리
        title = 'Welcome';
    }
    if (_url == '/favicon.ico') {                     // favicon 요청 무시
        return response.writeHead(404);
    }
    
    response.writeHead(200);                          // 성공 응답 헤더

    // 해당 파일 읽기 (title에 해당하는 파일)
    fs.readFile(`data/${title}`, 'utf-8', 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>
            <ol>
                <li><a href="/?id=HTML">HTML</a></li>
                <li><a href="/?id=CSS">CSS</a></li>
                <li><a href="/?id=JavaScript">JavaScript</a></li>
            </ol>
            <h2>${title}</h2>
            <p>${description}</p>
        </body>
        </html>
        `;
        response.end(template);                       // 응답 전송
    });
});

// 서버가 3000번 포트에서 요청을 대기함
app.listen(3000);
728x90

'클론코딩 > 생활코딩 Node.js' 카테고리의 다른 글

[Node.js] NotFound 구현  (0) 2024.08.14
[Node.js] 파일 읽기  (0) 2024.08.14
[Node.js] 동적으로 웹 생성  (0) 2024.08.14
  1. 1.본문 파일생성
  2. 2.파일 읽기
'클론코딩/생활코딩 Node.js' 카테고리의 다른 글
  • [Node.js] 루트페이지 처리하기
  • [Node.js] NotFound 구현
  • [Node.js] 파일 읽기
  • [Node.js] 동적으로 웹 생성
아사_
아사_
프로그래밍 공부한거 정리해두는 메모장 블로그
아사_
개발공부 블로그
아사_
전체
오늘
어제
  • 분류 전체보기
    • FrontEnd
      • html
      • css
      • JavaScript
      • Node.js
      • React
      • React Native
    • BackEnd
      • SpringBoot
      • FastAPI
      • PHP
      • Flask
      • supabase
    • Language
      • Python
      • JAVA
      • Kotlin
      • C++
    • Development Tools
      • AWS
      • GIT,GITHUB
      • Docker
      • 메시지 브로커
      • 기타 도구,플랫폼
    • Computer Science
      • 개발지식
      • Server&Network
      • Algorithm&DataStructure
      • Security
      • DataBase
      • OS
    • AI
    • 기타
      • 잡다
      • Android
      • 도서
    • 클론코딩
      • 생활코딩 Express.js
      • 점프 투 장고
      • 생활코딩 Node.js
    • 프로젝트
      • DevQuest

인기 글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.2
아사_
[Node.js] 파일로 본문 구현
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.