34 lines
992 B
JavaScript
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; |