반응형

ejs
(Embedded JavaScript)
JavaScript로 HTML 마크 업을 생성 할 수있는 간단한 템플릿 언어
다시말해 view를 동적으로 생성하는 템플릿 언어이다!
(HTML안에서 자바스크립트(함수,변수) 사용한다고 생각하면됨)
(HTML을 알고있다면 다른 템플릿 언어보다 훨씬 쉽게 익힐 수 있다.)
템플릿 엔진
.ejs파일을 HTML로 변환 시켜준다.
app.set메소드로 템플릿 엔진을 설정해주면 된다.
app.set('view engine','ejs');
ejs 문법
<% %> |
흐름 제어문 ex) <% if(user.name) %> |
<%= %> |
변수 값
|
<%- %> |
예약어 ex) <%- body %> |
<%- include('view의 상대주소') %> |
다른 view파일을 불러 옴 |
ejs 예시
아래 코드들은 ejs를 사용하여 HTML내에서 javascript를 실행하는 예시다,
(.ejs파일에서만 ejs문법을 쓸수있다)
controller, users객체를 전달하면서 index.js를 렌더링.

view, users 객체를 받아서 forEach로 출력

결과:

ejs 레이아웃
모든 페이지에 포함되는 HTML 요소들 ex) 메뉴바, 헤더, 푸터
I. 패키지 설치
npm i express-ejs-layouts
II. 미들웨어 선언
const layouts = require("express-ejs-layouts");
app.use(layouts); // 라우터 미들웨어 위에 선언해야됨
III. 레이아웃 예시
//layout.ejs
<%- include('헤더 view파일의 상대주소') %> // layout.ejs파일의 위치를 기준으로 상대위치를 정한다
<h1>컨텐츠 </h1> //얘는 고정 요소
<%- body %> // res.render("view 파일 주소")에서 view파일의 요소들이 들어간다.
<%- include('푸터 view파일의 상대주소') %>
'프로그래밍 > nodeJS' 카테고리의 다른 글
bcrypt를 사용한 비밀번호 암호화 (2) | 2020.11.22 |
---|---|
flashMessage(connect-flash 패키지) (2) | 2020.10.25 |
미들웨어 구조와 기본 미들웨어 세팅 (2) | 2020.10.18 |
(express+ nodeJS) CR"UD"작업의 필수 패키지 -> method-override (4) | 2020.10.15 |
HTTP 모듈로 '간단한' 웹서버 구축하기 (0) | 2020.10.11 |