DegullMok-server/routes/leaderboard.js

34 lines
992 B
JavaScript

var express = require('express');
var router = express.Router();
// 랭킹 조회
router.get("/", async function (req, res, next) {
try {
if(!req.session.isAuthenticated) {
return res.status(403).send("로그인이 필요합니다.");
}
var database = req.app.get('database');
var users = database.collection('users');
var allUsers = await users
.find({ }, { projection: { username:1, nickname: 1, score: 1 } })
.sort({ score: -1 }) // 점수가 높은 순으로 정렬
.toArray();
var result = allUsers.map((user) => (
{
username: user.username,
nickname: user.nickname,
score: user.score || 0,
}
))
res.json({ leaderboardDatas : result ?? [] });
} catch(err) {
console.error(err);
res.status(500).send("서버 오류가 발생했습니다.");
}
})
module.exports = router;