본문 바로가기

node.js

[Node.js] express 설치 및 사용법

Express.js

Express.js는 Node.js를 사용하기 위한 웹 애플리케이션 프레임워크입니다.

Node.js와 Express.js의 관계

1. Express.js는 Node.js를 위한 웹 애플리케이션 프레임워크입니다.
2. Node.js의 기본 기능에 웹 개발에 필요한 기능들을 더하여
웹 애플리케이션을 빠르게 구축할 수 있게 도와줍니다.
3. 라우팅, 미들웨어, 템플릿 엔진 등 다양한 기능을 제공하여
웹 애플리케이션의 개발과 유지보수를 용이하게 합니다.
4. NPM을 통해 다양한 패키지와 미들웨어를 지원하므로
개발자들이 필요에 따라 기능을 추가하거나 확장할 수 있습니다.
5. Express.js는 Node.js의 상위에 구축된 프레임워크로, Node.js를 기반으로 동작합니다.
6. Node.js가 서버 사이드 애플리케이션을 개발하는 런타임 환경을 제공하는 반면,
Express.js는 웹 개발을 위해 필요한 기능들을 쉽게 사용할 수 있도록 도와줍니다.
7. Express.js를 사용하면 Node.js로부터 받은 요청과 응답을 보다 쉽게 처리하고,
라우팅과 미들웨어 등을 활용하여 웹 애플리케이션을 더욱 효율적으로 개발할 수 있습니다.

설치

먼저, Express.js를 사용하기 위해서는 Node.js가 설치되어 있어야 합니다.
즉, Node.js 내 명령어 통해 설치하거나, Node.js가 설치된 상태에서 npm을 사용하여 설치하게 됩니다.

terminal내 아래 명령어를 입력하면 설치가 완료됩니다.

npm install express

기본 구조

Express.js 애플리케이션의 기본 구조는 아래와 같습니다.

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

// 미들웨어 등록 및 라우팅 정의

app.listen(port, () => {
  console.log(`서버가 http://localhost:${port} 에서 실행 중입니다.`);
});
  1. express 모듈을 불러와 app 객체를 생성합니다.
  2. app 객체를 통해 미들웨어를 등록하고, 라우팅을 정의합니다.
  3. app.listen()을 통해 서버를 실행합니다.

미들웨어 (Middleware)

Express.js는 미들웨어를 통해 요청과 응답을 처리하며, 기능을 확장하고 추가할 수 있습니다. 미들웨어 함수는 요청 객체 (req), 응답 객체 (res), 그리고 애플리케이션의 요청-응답 주기 중 다음 미들웨어 함수에 대한 액세스 권한을 가지고 있는 next 함수를 인자로 받습니다.

app.use((req, res, next) => {
  // 미들웨어 로직
  next(); // 다음 미들웨어로 넘어가도록 호출
});

서버 실행

Express.js 애플리케이션을 실행 및 포트번호 설정은 `app.listen()' 구문을 통해 실행할 수 있습니다.

const port = 3000;
//3000번 포트에서 서버를 실행

app.listen(port, () => {
  console.log(`서버가 http://localhost:${port} 에서 실행 중입니다.`);
});

위 구문 작성 후,

서버가 실행되면 해당 포트에서 Express.js 애플리케이션을 사용할 수 있습니다.

라우팅 (Routing)

Node.js에서는 기타 프레임워크와 유사하게
HTTP 메서드(GET, POST, PUT, DELETE 등)와 URL 패턴을 사용하여 요청에 대한 핸들러 함수를 연결하게 되는데,
이 방식을 "라우팅" 이라고 합니다.

GET/POST 요청을 받는 라우팅은 아래와 같이 작성합니다.

// GET 요청에 대한 라우팅
// 포트를 통해 들어오는 GET요청 중 "/"로 들어오는 모든 요청을 받는 콜백함수 작성하기
app.get('/', (req, res) => {
  res.send('Hello, Express!');
});

// POST 요청에 대한 라우팅
// 포트를 통해 들어오는 POST요청 중 "/users"로 들어오는 모든 요청을 받는 콜백함수 작성하기
app.post('/users', (req, res) => {
  // 새로운 사용자 추가 로직
});

위의 예시는 루트 경로(/)로 GET 요청이 들어오면 "Hello, Express!"라는 응답을 보내주고, /users로 POST 요청이 들어오면 새로운 사용자를 추가하는 로직을 수행하는 라우팅입니다.

라우트 매개변수

":" 기호를 이용해 라우트 매개변수를 정의할 수 있습니다.
라우트 매개변수는 URL의 특정 세그먼트를 잡아내어 이를 변수처럼 사용할 수 있게 해줍니다.

라우트 매개변수 예시

app.get('/users/:userId', function (req, res) {
  let userId = req.params.userId;
  res.send(`User ID is: ${userId}`);
});

위의 코드에서 ":userId"는 라우트 매개변수입니다.

예를 들어 "/users/123"로 요청이 들어오면 "User ID is: 123"라는 응답을 보내게 됩니다.

 

라우트 매개변수는 동적인 요청을 처리하는데 사용됩니다.

URL의 일부가 변경되어도 같은 라우트 핸들러에서 처리할 수 있습니다. 예를들어, 라우트 매개변수를 통해 서로 다른 아이디를 가진 사용자가 요청을 보낼 시 아이디에 맞는 개별 프로필 페이지를 출력할 수 있습니다.

'node.js' 카테고리의 다른 글

[Node.js] Node.js란? 개념 및 장단점  (0) 2023.07.24