액티브 스킬/노드

<Node.js> App 제작 (파일을 이용해 본문 구현) - 생활코딩

디벅잉 2021. 8. 23. 22:15
728x90
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);
    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>
        <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);
    });
    // response.end(template);
});
app.listen(3000);

'ReferenceError: template is not defined'

↑ 요 에러 때문에 어제 잠들기 전까지 전전긍긍했어요

조금전 한줄한줄 돌아보니 코드 한줄의 위치가 잘못됐걸 알았어요

template 변수가 readFile 메소드 안에서 정의된 지역변수기 때문에

메소드 밖에서 사용하면 정의되지 않은 변수라고 오류가 발생했나봐요

아직은 코드를 따라작성하며 이 코드는 무슨의미일까

하나하나 모르는 것 투성이지만 Node.js 학습을 마치고

다시 이 글을 보게 될 때쯤이면 위 코드를 전부 이해하고 있을

우리 모두에게 건배//

728x90