- ํน์ ์ฌ์ฉ์๋ฅผ ๋๋ค์์ผ๋ก ์กฐํ
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ user_id๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋น ์ฌ์ฉ์๋ฅผ ๊ฒ์ํ๊ณ , ๊ทธ ์ฌ์ฉ์์ ๊ฒ์๋ฌผ ์ ๋ณด๋ฅผ ํจ๊ป ๋ฐํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณต
1. ์ฝ๋
const express = require("express");
const router = express.Router();
router.use(express.json());
const { auth } = require("../auth");
const cookieParser = require("cookie-parser");
router.use(cookieParser());
const { User } = require("../../models/User");
const { Post } = require("../../models/Post");
// ๋๋ค์์ผ๋ก ์ฌ์ฉ์ ๊ฒ์
router.get("/", auth, async (req, res) => {
const { user_id } = req.query;
if (!user_id) {
return res.status(400).json({ message: "user_id๋ฅผ ์
๋ ฅํด์ฃผ์ธ์." });
}
try {
// user_id๊ฐ ์ฃผ์ด์ง ์
๋ ฅ๊ณผ ์ผ์นํ๋ ์ฌ์ฉ์ ์ฐพ๊ธฐ (๋์๋ฌธ์ ๊ตฌ๋ถX)
const user = await User.findOne({
user_id: { $regex: user_id, $options: "i" },
});
if (!user) {
return res.status(404).json({ message: "์ฌ์ฉ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค." });
}
// ์ฌ์ฉ์์ ๊ฒ์๋ฌผ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
const posts = await Post.find({ user: user._id }) // user ํ๋๊ฐ ์ฌ์ฉ์์ ID์ ์ผ์นํ๋ ๊ฒ์๋ฌผ ์ฐพ๊ธฐ
.select("text images createdAt"); // ํ์ํ ํ๋๋ง
// .populate("comments"); // ๋๊ธ ์ ๋ณด
// ์ฌ์ฉ์ ์ ๋ณด์ ๊ฒ์๋ฌผ ์ ๋ณด๋ฅผ ํจ๊ป ๋ฐํ
res.status(200).json({
userName: user.user_id, // ์ฌ์ฉ์ ์ด๋ฆ(user_id)
posts: posts, // ์ฌ์ฉ์์ ๊ฒ์๋ฌผ ๋ฐฐ์ด
});
} catch (error) {
console.error("Error occurred:", error);
res
.status(500)
.json({ message: "์๋ฒ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.", error: error.message });
}
});
module.exports = router;
2. ์ฝ๋ ์ค๋ช
- ์ฌ์ฉ์ ๊ฒ์: ํด๋ผ์ด์ธํธ๋ก๋ถํฐ(๊ตฌํ ์์ , ํ์ฌ๋ postman ์ฌ์ฉ) user_id๋ฅผ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์.
- user_id๊ฐ ์ ๊ณต๋์ง ์์ผ๋ฉด 400 ์ํ ์ฝ๋์ ํจ๊ป ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐํ.
- ์ฌ์ฉ์ ์ ๋ณด ์กฐํ: User ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ user_id์ ํด๋นํ๋ ์ฌ์ฉ์๋ฅผ ์ฐพ์.
- ์ฌ์ฉ์๊ฐ ๋ฐ๊ฒฌ๋์ง ์์ผ๋ฉด 404 ์ํ ์ฝ๋์ ํจ๊ป ์ฌ์ฉ์ ์์ ๋ฉ์์ง๋ฅผ ๋ฐํ.
- ๊ฒ์๋ฌผ ์ ๋ณด ์กฐํ: ์ฌ์ฉ์๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ, ํด๋น ์ฌ์ฉ์์ ๊ฒ์๋ฌผ์ ์กฐํ.
- ์๋ต ๋ฐํ: ์ฌ์ฉ์ ์ ๋ณด์ ๊ทธ ์ฌ์ฉ์์ ๊ฒ์๋ฌผ์ JSON ํ์์ผ๋ก ๋ฐํ.
3. ๊ฒฐ๊ณผ ๐
'Backend ๐ > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node] ํฐ๋ฏธ๋์ ํตํด Socket ํต์ (0) | 2024.11.07 |
---|---|
[Node]Instagram Clone - 10. ๊ฒ์๋ฌผ ์ข์์, ์ข์์ ์ทจ์ API (0) | 2024.11.07 |
[Node]Instagram Clone - 8. ๋๊ธ ์ญ์ API (1) | 2024.11.04 |
[Node]Instagram Clone - 7. ๋๊ธ ์์ฑ API (1) | 2024.11.03 |
[Node]Instagram Clone - 6. MongoDB Populate์ ์ฌ์ฉํ ๊ฒ์๋ฌผ ์กฐํ API (0) | 2024.11.03 |