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. 흐름 정리
- 클라이언트가 GET /api/participations 요청을 보냄.
- participations.js에서 User.countDocuments() 실행 → DB에서 회원 수 조회.
- 회원 수를 JSON 형태로 응답 ({ totalUsers: 회원 수 }).
- 클라이언트가 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 |