본문 바로가기
프로그래밍 개발/NodeJs

Node.js - 파일 읽기

by Jinseok Kim 2020. 12. 5.
반응형

 

 

파일 읽기

 

 

 

var fs = require('fs');
fs.readFile('TEST.txt', 'utf8', function(err, data){
  console.log(data);
});

 

  • 위의 코드는 외부 파일을 불러오는 노드에서 실행 할 수 있는 자바스크립트 코드이다.

 

 

 

 

 

 

  • TEST.txt라는 텍스트가 적혀있는 텍스트 파일을 만든다.
  • 그리고 js 파일에 노드에서 실행 할 수 있는 자바스크립트 코드를 적는다. readFile이라는 메소드의 첫 번째 인자가 외부에서 불러올 텍스트 파일 TEXT.txt이다.

 

 

 

 

 

  • node fileread.js을 명령 프롬프트에 입력하여 실행하면 TEST.txt 텍스트 파일의 내용이 도출되는 것을 확인 할 수 있다.

 

 

 

 

 

 

 

 

 

응용

 

 

 

 

data 라는 이름으로 폴더를 만들고 그 안에 순수 텍스트 파일이 들어있는 파일 3개를 만든다.

 

 

 

 

 

 

그리고 파일 읽기 자바스크립트 코드를 이용하여 웹 본문의 반응을 구현할 수 있다.

파일 읽기를 위한 readFile 메소드 첫 번째 인자로 방금 전 생성한 data 폴더의 경로가 적혀 있는 것을 확인 할 수있다.

var http = require('http');
var fs = require('fs');
var url = require('url');
 
var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    var title = queryData.id;
    if(_url == '/'){
      title = 'Welcome';
    }
    if(_url == '/favicon.ico'){
      return response.writeHead(404);
    }
    response.writeHead(200);
    
    //readFile 메소드의 세 번째 인자 함수의 두 번째 인자인 description 변수가 읽어온 쿼리
    //데이터 파일을 담는다고 볼 수 있다. description 변수는 즉 readFile 메소드의 세 번째 인자 함수
    //에 담겨있는 template 변수의 본문 html 파일 코드 중 p태그의 ${description}에 쿼리 데이터가 
    //담긴다고 볼 수 있다.
    fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
      var template = `
      <!doctype html>
      <html>
      <head>
        <title>WEB1 - ${title}</title>
        <meta charset="utf-8">
      </head>
      <body>
        <h1><a href="/">WEB</a></h1>
        <ul>
        
        <!--링크마다 클릭할 때 id 값인 쿼리 데이터가 결정되어 위에서 명령한 파일 읽기 코드가 발동되어
        data 폴더 안에 있는 html, css, javascript가 연결된다.-->
        
          <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);
    })
 
 
});
app.listen(3000);

 

 

각자 링크를 누를 때마다 <title> 부분은 쿼리 데이터 부분의 값으로 변환되고 <p>태그안은 data 폴더 안에 있는 각각

의 텍스트 파일의 내용들로 변환되고 있는 것을 확인 할 수 있었다.

 

 

 

 

 

 

반응형

'프로그래밍 개발 > NodeJs' 카테고리의 다른 글

Node.js - 홈페이지 구현  (0) 2020.12.05
Node.js - 콘솔에서의 입력값  (0) 2020.12.05
Node.js - URL와 query string  (0) 2020.12.05
Node.js - javascript 기본 언어 실행  (0) 2020.12.05
Node.js 실행 방법  (0) 2020.12.05

댓글