11월 292013
 

요즘 간단한 홈페이지를 만들고 있다. 어떻게 만들까 고민하다가, 새로운 기술을 배울 겸 node.js를 이용하여 구현해보았다. 최신버젼을 경험하는 것을 좋아하다 보니, 간단한 기능을 추가할 때 마다 에로사항이 꽃피고 있다.  기존에 나와 있는 node.js책에 있는 내용들의 일부분은 deflcated되어 사용될 수 없는 상황이 대부분이였다. connect의 미들웨어 router 등등. 비슷한 기능을 하는 것을 만들어서 해결할 수 있다고 하였지만 그냥 express framework를 사용하기로 하였다. 그런데 이 조차도 최신 버젼(>=3.0)에서 레이아웃이 작동되지 않는다는 것을 알게 되었다[1].

조사해 보았더니, 해결 방안은 jade의 기능을 이용하라는 것이였다.

아래는 index.jade이다.

extends layout
block title
    =title

block contents
    p Hello World@!@!@

아래는 레이아웃 역할을 하는 layout.jade이다.

!!!  5
html
    head
        title
            block title
        link(rel = 'stylesheet', href = '/css/bootstrap.min.css')
        link(rel = 'stylesheet', href = '/css/bootstrap.theme.min.css')
    body
        block contents

아래는 node.js를 통해 실행된 결과물이다.

		

Hello World@!@!@

요는 jade기능인 “extends”와 “block”을 쓰면 되는 것이다. index.jade에 extends layout 명령을 통해 layout.jade를 읽어 들이고 block 구분에 적혀져 있는 내용이 자동으로 치환되게 된다. 물론 extends <<파일명>> 형태로 사용하고, block <<레이블>> 형태로 맞춰주면 된다.

최근에 나온 프레임워크는 어떻게 튀어나갈지 몰라서 안정된 환경을 원할 경우에는 좋은 선택이 못되는 듯 하다.

[1] http://stackoverflow.com/questions/13783687/the-layout-jade-is-not-working-why