AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

CRUD 기능 구현: Express.js와 MongoDB를 활용한 백엔드 개발 가이드

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

Node.js 및 Express.js 기초 지식을 가진 개발자

(중간 난이도: Mongoose, Express.js 라우팅, MongoDB 기본 개념 이해 필요)

핵심 요약

  • Mongoose 모델 생성 (Post.js)으로 데이터 스키마 정의 및 타임스탬프 자동 생성
  • CRUD 컨트롤러 구현 (postController.js)에서 createPost, getAllPosts, updatePost, deletePost 메서드 사용
  • Express.js 라우팅 설정 (postRoutes.js)을 통해 POST, GET, PUT, DELETE 요청 처리
  • 모듈화된 아키텍처확장성과 유지보수성 강화

섹션별 세부 요약

1. Mongoose 모델 정의

  • src/models/Post.js에서 postSchema 정의
  • title, body 필드 필수 입력
  • timestamps: true로 생성/수정 시간 자동 기록
  • mongoose.model('Post', postSchema)로 모델 생성

2. CRUD 컨트롤러 구현

  • createPost
  • req.body로 데이터 생성 후 post.save() 호출
  • 성공 시 201 Created 응답, 오류 시 400 Bad Request
  • getAllPosts
  • Post.find()로 전체 데이터 조회, 500 Internal Server Error 시 오류 처리
  • getPostById
  • Post.findById(req.params.id)로 ID 기반 검색, 존재하지 않을 시 404 Not Found
  • updatePost
  • findByIdAndUpdate로 데이터 업데이트, runValidators: true로 스키마 검증
  • deletePost
  • findByIdAndDelete로 데이터 삭제, 성공 시 200 OK 응답

3. Express.js 라우팅 설정

  • src/routes/postRoutes.js에서 라우터 정의
  • POST /api/posts: createPost 호출
  • GET /api/posts: getAllPosts 호출
  • GET /api/posts/:id: getPostById 호출
  • PUT /api/posts/:id: updatePost 호출
  • DELETE /api/posts/:id: deletePost 호출

4. 서버 설정 및 테스트

  • src/app.js에서 express.json() 미들웨어 등록
  • /api/posts 경로에 postRoutes 라우터 연결
  • 테스트 도구: Postman, cURL, 프론트엔드 UI 사용
  • 예시 요청 본문:

```json

{"title":"First Blog Post","body":"This is the content of the blog post."}

```

결론

  • 모듈화된 코드 구조로 코드 재사용성과 확장성 향상
  • Express.js와 Mongoose 활용으로 간단한 REST API 구현 가능
  • 테스트 시 POST /api/posts 엔드포인트 사용하여 데이터 생성/조회/수정/삭제 확인