User 총 개수 조회 기능 (/api/participations) 정리

2025. 3. 11. 15:35백엔드/NODE.JS

728x90

📌 1. 개요

  • 목적: 회원가입이 완료된 총 User 개수를 조회하는 기능을 구현.
  • 엔드포인트: GET /api/participations
  • 사용 기술: Node.js, Express, MongoDB (Mongoose)

🔹 2. 코드 구성 및 동작 방식

1️⃣ routes/participations.js (라우터)

  • User.countDocuments()를 사용하여 전체 User 개수를 조회하고 반환.
const express = require("express");
const mongoose = require("mongoose");
const User = require("../models/User");

const router = express.Router();

// 🔹 전체 회원 수 조회 API
router.get("/", async (req, res) => {
  try {
    // 전체 회원 수 조회
    const totalUsers = await User.countDocuments();

    // 응답 반환
    res.json({ data });
  } catch (error) {
    console.error("❌ 전체 회원 수 조회 에러:", error);
    res.status(500).json({ message: "서버 오류가 발생했습니다." });
  }
});

module.exports = router;

설명

  • User.countDocuments() → DB에서 User 문서(회원) 개수를 조회.
  • res.json({ totalUsers }) → 조회한 회원 수를 JSON 응답으로 반환.
  • 에러 발생 시 500 Internal Server Error 응답 처리.

2️⃣ server.js (라우터 등록)

  • server.js에서 participations.js 라우터를 등록하여 GET 요청 가능하도록 설정.
app.use("/api/participations", require("./routes/participations"));

설명

  • app.use("/api/participations", require("./routes/participations"));
    • /api/participations 경로로 들어오는 요청을 routes/participations.js로 전달.

🔹 3. API 요청 및 응답 예시

✅ 요청 (GET 요청)

GET http://localhost:5000/api/participations

✅ 응답 (회원가입한 유저 수)

{
  "totalUsers": 120
}

(예: 현재 DB에 저장된 유저가 120명이라면 120 반환)


🔹 4. 흐름 정리

  1. 클라이언트가 GET /api/participations 요청을 보냄.
  2. participations.js에서 User.countDocuments() 실행 → DB에서 회원 수 조회.
  3. 회원 수를 JSON 형태로 응답 ({ totalUsers: 회원 수 }).
  4. 클라이언트가 totalUsers 값을 받아 화면에 표시 가능.

🔹 5. 추가 개선 사항

  • totalUsers 값이 실시간 반영되도록 주기적으로 데이터를 요청하여 클라이언트에서 업데이트할 수 있음.
  • 관리자 페이지에서 총 사용자 수를 대시보드에 표시하는 용도로 활용 가능.

 

728x90

'백엔드 > NODE.JS' 카테고리의 다른 글

서버 URL 및 엔드포인트  (0) 2025.03.13
Passport  (2) 2025.03.11
$ne와 $nin  (0) 2025.03.11
node.js 카카오 로그인  (0) 2025.03.11
1. Node.js 모듈 시스템 개요  (0) 2025.03.11