[Day60] Node.js - Express의 주요 기능2

Validator·2023년 9월 7일
0

정적 파일 제공

Express에서 정적 파일(이미지, CSS, JavaScript 파일 등)을 제공하려면, express.static 미들웨어를 사용해야 한다. 이를 통해 특정 디렉토리의 파일들을 공개적으로 접근 가능하게 할 수 있다.

예를 들어, 'public'이라는 디렉토리에 정적 파일들을 저장하고 이를 사용하려면 다음과 같이 코드를 작성한다.

app.use(express.static('public'));

이렇게 설정하면 public 디렉토리 아래의 파일들은 웹 브라우저를 통해 직접 접근할 수 있다. 예를 들어, public 디렉토리에 image.jpg라는 이미지 파일이 있다면, 사용자는 http://localhost:3000/image.jpg로 접근하여 이미지를 볼 수 있다.

템플릿 엔진 사용하기

템플릿 엔진(Template Engine)은 동적 데이터를 포함한 HTML 파일을 생성하는 데 사용된다. Express는 여러 템플릿 엔진을 지원한다. 대표적으로 Pug, EJS, Handlebars 등이 있다.

EJS를 예로 들면, 템플릿 엔진을 사용하려면 먼저 npm을 통해 설치해야 한다:

npm install ejs --save

그 다음, Express 애플리케이션에서 EJS를 설정한다.

app.set('view engine', 'ejs');

이제 .ejs 확장자를 가진 파일들을 views 디렉토리에 저장하면, 이 파일들을 템플릿으로 사용할 수 있다. 예를 들어 views 디렉토리 아래에 index.ejs 파일을 만들고, 다음과 같은 코드로 동적 데이터를 포함한 웹 페이지를 생성할 수 있다:

<!DOCTYPE html>
<html>
<head>
    <title>테스트 페이지</title>
</head>
<body>
    <h1><%= title %></h1>
    <p><%= message %></p>
</body>
</html>

Express 애플리케이션에서는 다음과 같이 res.render 함수를 사용하여 템플릿을 렌더링한다:

app.get('/', (req, res) => {
    res.render('index', {
        title: '제목',
        message: '메시지 내용'
    });
});

오류 처리

Express는 미들웨어를 사용하여 오류 처리도 할 수 있다. 오류 처리 미들웨어는 일반 미들웨어와는 달리 4개의 매개변수를 가진다: err, req, res, next. 오류 처리 미들웨어는 다른 미들웨어에서 오류가 발생했을 때 호출된다.

예제:

app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('서버에서 오류가 발생했습니다!');
});

종합

Express는 웹 애플리케이션 개발을 위한 강력하고 유연한 프레임워크다. 라우팅, 미들웨어, 정적 파일 제공, 템플릿 엔진 등의 기능을 제공하여, 웹 애플리케이션과 API의 개발을 쉽고 빠르게 할 수 있다.

Node.js와 결합하여 사용하면, 단일 언어(JavaScript)를 사용하여 서버와 클라이언트 모두의 코드를 작성할 수 있다. 이는 개발 과정을 단순화하고, 코드 재사용성을 높인다.

끝으로, Express와 관련된 다양한 미들웨어와 라이브러리를 통해 웹 애플리케이션의 기능을 쉽게 확장할 수 있다. 이를 통해, 개발자는 빠른 시간 안에 안정적이고 확장 가능한 웹 애플리케이션을 구축할 수 있다.

0개의 댓글