Nodejs 친구목록 친구추가
클라이언트
// 친구 추가하기
function add_friend(nickname) {
$.ajax({
type: "POST",
url: "/api/add_friend",
headers: { token: localStorage.getItem('token') },
data: {
"nickname": nickname,
},
success: function (response) {
alert(response)
},
});
window.location.href = "/home";
}
// 친구 목록 보여주기
function my_friend_show() {
$('#my_freind_list_show').empty()
$.ajax({
type: "GET",
url: '/api/my_friend_list_show',
headers: { token: localStorage.getItem('token') },
data: {},
success: function (response) {
let friend_list = response['my_friend_list_show']
console.log(friend_list)
console.log(typeof (friend_list))
for (let i = 0; i < friend_list.length; i++) {
let tempHtml = `
<h3 style="color:orange">${friend_list[i]}
</h3>`
$("#my_freind_list_show").append(tempHtml);
}
},
});
}
서버
// 친구 추가하기
router.post("/add_friend", async (req, res, next) => {
console.log('== 친구 추가 발동! ==')
const friend_nickname = req.body.nickname;
const { token } = req.headers;
payload = jwt.verify(token, "team2-key");
let { friend_list } = await User.findOne({ _id: payload.userId })
const { nickname } = await User.findOne({ _id: payload.userId })
if (friend_list.includes(friend_nickname) == true) {
res.send("이미 친구랍니다^^")
return
}
friend_list.push(friend_nickname)
await User.updateOne({ nickname }, { $set: { friend_list } });
res.send("친구 추가 완료 ^^")
});
// 내 친구 목록 보여주기
router.get("/my_friend_list_show", async (req, res) => {
const { token } = req.headers;
payload = jwt.verify(token, "team2-key");
const { friend_list } = await User.findOne({ _id: payload.userId })
res.json({ my_friend_list_show: friend_list });
console.log(" == 친구목록 확인 완료 ^^ ==")
});
일단 되는대로 내가 아는 한에서 이것저것 만지면서 해봤다.
몽고DB를 사용하는데, 각 유저정보에 친구리스트를 배열로 넘기려고 했다.
막상 하니까 오타를 제외하곤 잘 됐다.
그 뒤에 본인 아이디를 제외하고 보여준다거나 이런 사소한 부분에서 for문을 썼는데 다음에 좋은 코드로 한번 바꿔서 해봐야겠다.
'Back > Node.js' 카테고리의 다른 글
Node.js 친구가 쓴 글만 내려주기 [MongoDB] (0) | 2021.04.08 |
---|---|
Node.js 좋아요, MongoDB (0) | 2021.04.08 |
노드js 유저 인증하기 (0) | 2021.04.01 |
Node.js morgan, cookieParser, static (0) | 2021.03.24 |
Node.js - express(익스프레스), middleware(미들웨어), next (0) | 2021.03.24 |