Back/Node.js

Nodejs 친구목록 친구추가

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문을 썼는데 다음에 좋은 코드로 한번 바꿔서 해봐야겠다.