본문 바로가기

Dev.BackEnd/Node.js

[여섯번째] Node.js 기본 / 정적 파일 제공



정적 파일 제공
일단, 각 문법적 요소 요소들에 대해서 무조건 알고 넘어가야 겠다는 강박증을 내려놓자.
각 코드들을 레고 블럭처럼 생각하고 어떤 것을 하기위해 어떤 것이 필요하다라고
패턴화로 기억하자.

정적인 파일이란 한번 만들어지면 변할 일이 없는 계속 똑같은 html문서 같은 것을 말한다.
app.use(express.static('public'));
.static 메소드는 정적인 파일이 위치할 디렉토리를 지정하는 기능을 갖고 있다.
디렉토리 명은 관습적으로 public 이라고 한다.
정적인 파일에 대해 변경된 사항에 대해서 노드 애플리케이션을 껐다가 다시 킬 필요 없다.

API 문서를 살펴보면
이미지, CSS 파일 및 JavaScript 파일과 같은 정적 파일을 제공하려면
Express의 기본 제공 미들웨어 함수인 express.static을 사용하십시오.
정적 자산이 포함된 디렉토리의 이름을 express.static 미들웨어 함수에 전달하면
파일의 직접적인 제공을 시작할 수 있습니다.
예를 들면, 다음과 같은 코드를 이용하여 public이라는 이름의 디렉토리에 포함된 
미지, CSS 파일 및 JavaScript 파일을 제공하십시오.

Express는 정적 디렉토리에 대해 상대적으로 파일을 검색하며,

따라서 정적 디렉토리의 이름은 URL의 일부가 아닙니다.


이라고 나온다.
코드>
app.use(express.static('public'));
app.get('/route',function(req,res){
    res.send('<img src = "/route.png">')
});

/route 로 접속하면 route.png가 로드된다.

코드>

app.get('/dynamic', function(req,res){
    var lis = '';
    for(var i=0;i<5;i++){
        lis = lis + '<li>coding</li>'
    }
    var output = `
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
Hello. Dynamic
<ul>
${lis}
</ul>
</body>
</html>`;
    res.send(output);
});

그레이브 액센트( ` ) 를 통해서 html 코드를 자바스크립트 파일상에 위치한다.
반복문을 사용해서 반복작업을 줄인다.
html 파일상에 반복문을 삽입하려면 변수로 삽입. 변수라는 것을 명시하기 위해 $ {  } 사용

정적/동적은 둘다 장단점이 존재한다.
여기서 정적 장점과 동적 장점을 가져와 무엇가를 만든다.

그것이 템플릿 엔진!!
다음 포스팅에서 템플릿 엔진 npm인 jade에 대해 알아보겠다.




생활코딩 감사합니다^^

-..-