프로그래밍/Node.js

[Node.js 강의 시리즈] 21강 - EJS 템플릿 엔진

월횽 2024. 7. 22. 06:30
728x90
반응형
SMALL

템플릿 엔진의 필요성을 이해하고, EJS 템플릿 엔진을 설치하고 사용하는 방법을 익힌다.

 

 

1. 템플릿 엔진의 필요성

 

템플릿 엔진이란?

· 템플릿 엔진은 서버 사이드에서 HTML을 동적으로 생성하기 위해 사용되는 도구이다.
· JavaScript 변수와 로직을 사용하여 HTML 템플릿을 생성할 수 있다.

728x90

템플릿 엔진의 필요성

· 서버에서 데이터를 HTML에 삽입하여 동적인 웹 페이지를 생성할 수 있다.
· 재사용 가능한 템플릿을 통해 코드의 중복을 줄이고, 유지보수성을 높일 수 있다.

 

 

2. EJS 설치 및 사용법

 

EJS란?

· EJS(Embedded JavaScript)는 간단하고 사용하기 쉬운 템플릿 엔진으로, HTML 내에 JavaScript 코드를 삽입할 수 있다.

반응형

EJS 설치

· 먼저 Express 프로젝트에서 EJS를 설치한다.

npm install ejs

 

 

EJS 설정

· Express 애플리케이션에서 EJS를 템플릿 엔진으로 설정한다.

const express = require('express');
const app = express();
const port = 3000;

// EJS를 템플릿 엔진으로 설정
app.set('view engine', 'ejs');

// 뷰 디렉토리 설정 (기본값은 'views' 디렉토리)
app.set('views', './views');

 

 

EJS 템플릿 작성

· views 디렉토리에 EJS 템플릿 파일을 생성한다. 예를 들어, index.ejs 파일을 생성한다.

<!-- views/index.ejs -->

<!DOCTYPE html>
<html>
<head>
  <title>My EJS Page</title>
</head>
<body>
  <h1>Welcome to <%= title %>!</h1>
  <p>This is a simple EJS template example.</p>
</body>
</html>

 

SMALL

EJS 템플릿 렌더링

· Express 라우트에서 EJS 템플릿을 렌더링한다.

app.get('/', (req, res) => {
  res.render('index', { title: 'EJS Example' });
});

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

 

· 서버를 시작하고 브라우저에서 http://localhost:3000을 열어 EJS 템플릿이 렌더링된 결과를 확인한다.

 

 

3. EJS 사용 예제

 

동적 데이터 삽입

· EJS 템플릿에서 동적으로 데이터를 삽입하는 방법을 알아보자.

<!-- views/index.ejs -->

<!DOCTYPE html>
<html>
<head>
  <title>My EJS Page</title>
</head>
<body>
  <h1>Welcome to <%= title %>!</h1>
  <ul>
    <% users.forEach(user => { %>
      <li><%= user.name %> - <%= user.age %></li>
    <% }); %>
  </ul>
</body>
</html>
app.get('/', (req, res) => {
  const users = [
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 30 },
    { name: 'Charlie', age: 35 }
  ];
  res.render('index', { title: 'User List', users });
});

 

조건문과 반복문

· EJS 템플릿에서 조건문과 반복문을 사용하여 동적 콘텐츠를 생성할 수 있다.

<!-- views/index.ejs -->

<!DOCTYPE html>
<html>
<head>
  <title>My EJS Page</title>
</head>
<body>
  <h1>Welcome to <%= title %>!</h1>
  <ul>
    <% if (users.length > 0) { %>
      <% users.forEach(user => { %>
        <li><%= user.name %> - <%= user.age %></li>
      <% }); %>
    <% } else { %>
      <p>No users found.</p>
    <% } %>
  </ul>
</body>
</html>

 

 

- 이전 수업 목록

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST