본문 바로가기
[웹]

[Node.js] 간단 웹 페이지 연습

by Hevton 2020. 9. 30.
반응형

Template Literal 과 fs.readFIle, fs.readdir 등등을 연습삼아 왁자지껄 코드를 작성했다.

 

뒤죽박죽이기도 하고 깔끔하진 않지만 공부 후 혼자 해봤다. 아직 코드들이 익숙치 않은 탓에 컴파일 에러가 많이 떠서 애를 좀 먹었다..

 

웹페이지를 구축하고, /data 폴더에 있는 파일들을 불러들여서 메인페이지에 링크를 만든 뒤

해당 링크를 누르게 되면 id값으로 파일명이 전달되어, 전달된 파일을 읽어들여 본문에 더해주는 작업이다.

var http = require('http');
var fs = require('fs');
var url = require('url');
var app = http.createServer(function(request, response) {
  var _url = request.url;
  var data = url.parse(_url, true).query;
  var pathname = url.parse(_url, true).pathname;
  console.log(pathname);
  if (pathname === '/') {
    if (data.id === undefined) //id값을 넘겨받지못한경우
    {
      var main = 'hello world';
      fs.readdir('./data', function(err, filelist) {
        var str = '<ul>';
        var i = 0;
        while (i < filelist.length) {
          str += `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
          i++;
        }
        str += '</ul>';

        var main = `<p>hello world</p>
          ${str}`
        response.writeHead(200);
        response.end(main);
      });
    } else {
      fs.readdir('./data', function(err, filelist) {
        var str = '<ul>';
        var i = 0;
        while (i < filelist.length) {
          str += `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
          i++;
        }
        str += '</ul>';
        fs.readFile(`./data/${data.id}`, 'utf-8', function(err, des) {
          var main = `<p>${data.id}</p>
          ${str}
          ${des}`;
          response.writeHead(200);
          response.end(main);
        });
      });
    }
  } else {
    response.writeHead(404);
    response.end('not found');
  }
});
app.listen(3001);

눈여겨 봐야 할 곳들은 대충

 

1. data.id === undefined

2. fs.readdir()

3. fs.readFile()

4. Template Literal을 사용한 것 (간편하고 범용이 넓어 String Literal보다 사용성이 좋음)

 

 

수업의 출처는 opentutorials.org 의 이고잉 님이십니다. 감사합니다.

 

반응형

'[웹]' 카테고리의 다른 글

[JavaScript] 자바스크립트에서 함수 특징  (0) 2020.09.30
[Node.js] 동기/비동기  (0) 2020.09.30
[Node.js] 파일 리스트 출력  (0) 2020.09.29
[JavaScript] Undefined  (0) 2020.09.29
[JavaScript] 자바스크립트에서의 배열  (0) 2020.09.29