[Node.js] Node.js Express 기본 및 주요 모듈 정리

2025. 5. 20. 09:55·Node.js
728x90
반응형
SMALL

Node.js와 Express를 사용한 웹 개발에서 자주 쓰이는 모듈들을 정리해봤습니다. 각 모듈의 역할과 사용 시점을 중심으로 설명합니다.


1. Node.js 내장 모듈

Node.js에 기본적으로 포함되어 있어서 별도 설치 없이 사용할 수 있는 모듈입니다.

http

  • 역할: 기본 웹 서버 생성 기능을 제공
  • 사용 시점: Express 없이 순수 Node.js로 서버를 만들 때
const http = require('http');
http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World!');
}).listen(3000);

path

  • 역할: 파일 및 디렉토리 경로 관련 유틸리티 제공
  • 사용 시점: 플랫폼에 상관없이 경로를 안전하게 조작할 때
const path = require('path');
const fullPath = path.join(__dirname, 'views', 'index.html');

2. Express 및 관련 외부 모듈

Express 기반 서버를 만들 때 자주 함께 사용하는 미들웨어와 외부 패키지입니다.

express

  • 역할: 웹 애플리케이션 프레임워크
  • 사용 시점: REST API 서버, 라우팅, 미들웨어 구성 등
const express = require('express');
const app = express();

body-parser

  • 역할: HTTP 요청의 body 데이터를 해석하여 req.body로 제공
  • 사용 시점: POST 요청으로 전송된 JSON이나 폼 데이터를 처리할 때
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

Express 4.16 이상에서는 express.json()과 express.urlencoded()로 대체 가능


cookie-parser

  • 역할: 요청 헤더에 포함된 쿠키를 파싱하여 req.cookies로 제공
  • 사용 시점: 로그인, 사용자 추적 등에 쿠키를 사용할 때
const cookieParser = require('cookie-parser');
app.use(cookieParser());

serve-static

  • 역할: 정적 파일(CSS, JS, 이미지 등)을 제공
  • 사용 시점: 클라이언트에서 직접 접근 가능한 정적 리소스를 제공할 때
const serveStatic = require('serve-static');
app.use(serveStatic(__dirname + '/public'));

express-session

  • 역할: 사용자별 세션 데이터를 저장하고 관리
  • 사용 시점: 로그인 상태 유지, 사용자 인증 등
 
const session = require('express-session');
app.use(session({
  secret: 'secretKey',
  resave: false,
  saveUninitialized: true
}));

errorhandler / express-error-handler

  • 역할: 오류 처리 및 에러 페이지 제공
  • 사용 시점: 404, 500 에러 처리 및 디버깅 환경에서 유용
const errorHandler = require('errorhandler');
app.use(errorHandler());

const expressErrorHandler = require('express-error-handler');
const handler = expressErrorHandler({
  static: {
    '404': './public/404.html'
  }
});
app.use(expressErrorHandler.httpError(404));
app.use(handler);

mongodb

  • 역할: Node.js 애플리케이션에서 MongoDB와 직접 통신
  • 사용 시점: MongoDB 데이터베이스에 연결하여 데이터 CRUD 작업 수행
const { MongoClient } = require('mongodb');
MongoClient.connect('mongodb://localhost:27017', (err, client) => {
  const db = client.db('mydb');
});

3. 추가로 알아두면 좋은 외부 모듈

morgan

  • 역할: HTTP 요청 로그 기록
  • 사용 시점: 개발 환경에서 요청 로그를 확인하고 디버깅할 때
const morgan = require('morgan');
app.use(morgan('dev'));

dotenv

  • 역할: 환경 변수 파일(.env)을 불러와서 process.env에 등록
  • 사용 시점: 데이터베이스 정보, API 키 등 민감한 정보를 분리할 때
require('dotenv').config();
const dbPassword = process.env.DB_PASSWORD;

cors

  • 역할: 다른 출처의 클라이언트에서 요청을 허용
  • 사용 시점: 프론트엔드와 백엔드가 다른 도메인일 때
const cors = require('cors');
app.use(cors());

4. 요약

모듈명설명사용 목적
http 내장 웹 서버 모듈 기본 서버 생성
path 파일 경로 조작 도구 안전한 경로 처리
express 웹 프레임워크 라우팅, 미들웨어 처리 등
body-parser 요청 본문 파서 JSON, 폼 데이터 처리
cookie-parser 쿠키 파서 로그인, 사용자 추적 등
serve-static 정적 파일 제공 HTML, CSS, JS, 이미지 등 제공
express-session 세션 관리 로그인 유지, 인증 기능
errorhandler 기본 에러 핸들러 개발 중 에러 디버깅
express-error-handler 커스텀 에러 페이지 설정 404, 500 페이지 제공
mongodb MongoDB 드라이버 DB 연결 및 쿼리 수행
morgan 요청 로깅 요청 추적 및 디버깅
dotenv 환경 변수 로딩 민감 정보 분리
cors CORS 설정 도메인 간 요청 허용

이 글을 통해 Node.js와 Express에서 어떤 모듈이 어떤 상황에 필요한지 정리해보았습니다. 실무나 학습 프로젝트에서 모듈 선택 시 참고하시기 바랍니다.

728x90
반응형
LIST

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

[Node.js] Node.js에서 MSSQL 데이터베이스 연결하기  (0) 2025.06.20
[Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기  (0) 2025.06.16
[Node.js] 미들웨어란?  (0) 2025.05.28
[Node.js] Node.js 엑셀 라이브러리 총정리 – xlsx 중심 사용법과 활용 가이드  (0) 2025.05.08
[Node.js] Node.js란? 자바스크립트가 브라우저 밖으로 나온 이유  (0) 2025.04.29
'Node.js' 카테고리의 다른 글
  • [Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기
  • [Node.js] 미들웨어란?
  • [Node.js] Node.js 엑셀 라이브러리 총정리 – xlsx 중심 사용법과 활용 가이드
  • [Node.js] Node.js란? 자바스크립트가 브라우저 밖으로 나온 이유
junhyeokkk
junhyeokkk
나의 개발자 성장기
  • junhyeokkk
    백엔드 개발자 준혁의 성장일지
    junhyeokkk
  • 전체
    오늘
    어제
    • 분류 전체보기 (59)
      • Flutter (13)
      • 개발환경구축 (3)
      • HTTP (0)
      • CS지식 (5)
      • 코딩테스트 (10)
      • JAVA (7)
      • 데이터베이스 (7)
      • Node.js (9)
      • TypeScript (1)
      • Azure (3)
      • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    자바
    RDBMS
    Microsoft
    azure
    코딩테스트
    Typescript
    CS지식
    nodejs
    마이크로소프트sql
    MSsql
    node.js
    db
    Flutter
    programmers
    js
    라이브러리
    개발자준비
    디자인패턴
    백엔드
    백엔드개발자
    알고리즘
    cosmos db
    DART
    node
    개발자
    sql튜토리얼
    데이터베이스
    백엔드개발
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
junhyeokkk
[Node.js] Node.js Express 기본 및 주요 모듈 정리
상단으로

티스토리툴바