프로젝트 구조 설명 - Node.js + Express + MongoDB 연락처 API
이 프로젝트는 Express 프레임워크와 MongoDB, Mongoose ODM을 기반으로 한 RESTful API로, 사용자 연락처 정보를 관리하는 기능을 구현합니다.
전체 폴더 구조
myContacts/
├── app.js # 애플리케이션 진입점
├── config/
│ └── dbConnect.js # DB 연결 설정
├── controllers/
│ └── contactController.js # 요청 처리 비즈니스 로직
├── models/
│ └── contactModel.js # Mongoose 스키마 및 모델 정의
├── routes/
│ └── contactRoutes.js # 라우팅 설정
├── .env # 환경변수 파일 (MongoDB 연결 문자열 등)
└── package.json # 프로젝트 의존성 및 설정
✅ 기본적으로 필요한 패키지들
| 패키지명 |
설명 |
설치 명령어 |
express |
웹 서버 프레임워크 |
npm install express |
mongoose |
MongoDB ODM (MongoDB와 연결 및 모델 정의) |
npm install mongoose |
dotenv |
환경변수 .env 파일에서 불러오기 |
npm install dotenv |
express-async-handler |
비동기 에러 처리용 미들웨어 |
npm install express-async-handler |
✅ (선택) 개발 편의성 도구
| 패키지명 |
설명 |
설치 명령어 |
nodemon |
코드 변경 시 서버 자동 재시작 (개발용) |
npm install -D nodemon또는 전역 설치 npm install -g nodemon |
설치 순서 예시
npm init -y # package.json 생성 (처음 1회만)
npm install express mongoose dotenv express-async-handler
npm install -D nodemon # 개발용 nodemon 설치
1. app.js
// express 모듈 불러오기
const express = require("express");
// MongoDB 연결 함수 불러오기 (dbConnect.js에서 정의된 함수)
const dbConnect = require("./config/dbConnect");
// express 애플리케이션 생성
const app = express();
// MongoDB 연결 실행
dbConnect();
// 클라이언트 요청에서 JSON 형식의 body 데이터를 파싱하기 위한 미들웨어
app.use(express.json());
// 클라이언트 요청에서 x-www-form-urlencoded 형식의 body 데이터를 파싱하기 위한 미들웨어
app.use(express.urlencoded({ extended: true }));
// '/contacts' 경로로 들어오는 요청을 contactRoutes에서 처리
app.use("/contacts", require("./routes/contactRoutes"));
// 포트 3000번에서 서버 실행
app.listen(3000, () => {
console.log("서버 실행 중...");
});
- dbConnect: MongoDB에 연결하는 함수 호출
- express.json() / urlencoded(): 요청 바디를 JSON 또는 폼 형식으로 파싱
- /contacts 요청을 라우터에 위임