Express란?
Express는 Node.js를 위한 빠르고 유연한 웹 애플리케이션 프레임워크입니다. 즉 Express를 통해 Node.js를 사용하여 웹 애플리케이션을 더욱 쉽게 작성할 수 있습니다. Express는 Node.js의 기능을 확장하며,HTTP의 요청과 응답을 쉽게 처리하고, 미들웨어와 라우팅을 사용하여 웹 애플리케이션을 더욱 유연하게 만들 수 있습니다
설치 및 사용방법
먼저 아래의 코드를 터미널을 통해 해당 디렉토리 내부에서 실행시켜 Express를 설치해줍니다.
npm install express --save
그리고 프레임워크를 쓰고자 하는 파일( ex) app.js ) 내부에 코드를 다음과 같이 작성합니다.
// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, world!');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
위 코드에서 express 모듈을 불러와 app 객체를 생성합니다. 그리고 app.get() 메소드를 사용하여 / 경로로 들어오는 GET 요청을 처리합니다. 요청이 들어오면 res.send() 메소드를 사용하여 Hello, world! 문자열을 응답으로 보내줍니다.
마지막으로 app.listen() 메소드를 사용하여 서버를 실행합니다. 위 코드에서는 3000번 포트를 사용하여 서버를 실행하고 있습니다.
이제 위 코드를 실행하면 localhost:3000 주소로 접속하면 Hello, world! 메세지를 볼 수 있습니다.
라우팅
Express는 프레임워크 자체에서 라우터 기능을 제공합니다.
Express에서 라우팅은 HTTP 요청 메서드(GET, POST, PUT, DELETE 등)와 URL 경로를 결합하여 어떤 동작을 수행할지 결정합니다. 예를 들어 /users 경로로 GET 요청이 들어왔을 때, 사용자 목록을 조회하는 기능을 구현하려면 다음과 같이 코드를 작성할 수 있습니다.
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
// 사용자 목록 조회 로직
// ...
res.send(users); // 조회한 사용자 목록을 응답으로 반환합니다.
});
위 코드에서 app.get('/users', callback)은 /users 경로로 GET 요청이 들어왔을 때 callback 함수를 실행하도록 설정하는 메서드입니다. 이제 브라우저에서 GET /users 요청을 보내면 서버에서는 callback 함수가 실행되고, 그 결과로 사용자 목록이 응답으로 반환됩니다.
미들웨어
미들웨어는 Express에서 가장 핵심적인 개념 중 하나입니다. 미들웨어는 요청과 응답 객체를 가공하거나 처리하는 로직을 담당합니다. 미들웨어는 Express 애플리케이션에서 app.use() 메서드를 사용하여 등록할 수 있습니다. 미들웨어는 함수 형태로 정의되며, req, res, next 세 개의 인자를 받습니다.
const express = require('express');
const app = express();
// 미들웨어 등록
app.use((req, res, next) => {
console.log('Request received');
next(); // 다음 미들웨어 호출
});
app.use((req, res, next) => {
// 로그인된 사용자인지 확인하는 로직
// ...
if (req.user) {
next(); // 다음 미들웨어 호출
} else {
res.status(401).send('Unauthorized'); // 로그인되지 않은 경우 401 에러 반환
}
});
// ...