티스토리 뷰

TIL

2020-06-25 TIL

Hoon1994 2020. 6. 25. 22:28

#Node.js

 

 

오늘은 유저의 프로필 데이터를 변경하는 작업을 진행해보았다.

 

userRouter.post(routes.editProfile, onlyPrivate, uploadAvatar, postEditProfile);


export const postEditProfile = async (req, res) => {
  const {
    body: { name, email },
    file,
    user: { _id }
  } = req;
  try {
    const user = await User.findById(_id)
    await User.findByIdAndUpdate(_id, {
      name,
      email,
      avatarUrl: file ? file.path : req.user.avatarUrl
    });
    await user.save();
    res.redirect(routes.me);
  } catch (error) {
    res.render("editProfile", { pageTitle: "Edit Profile" });
  }
};

 

우선 프로필 수정 페이지에서 포스트 요청을 할 경우 실행되는 함수를 작성하고, 

미들웨어로 로그인한 유저 & 업로드된 이미지를 받게 설정하고 마지막으로 postEditProfile 함수가 실행되게 했다.

findByIdAndUpdate를 통해 유저를 찾아서 정보를 바꿔주도록 해서 작동을 시켜봤는데, 정상적으로 작동은 됐다. 

 

다만 로그아웃하고 다시 로그인한 경우, 바꾼 정보로 저장이 되지 않아서 user.save()를 해줬는데, 이름만 저장이 되고 

이미지는 저장이 되지 않아서 해당 문제를 해결해보려고 한다. 

'TIL' 카테고리의 다른 글

2020-06-30 Node.js 라우터 가드  (0) 2020.06.30
2020-06-29 Node.js. (ChangePW, Adding Video Creator)  (0) 2020.06.29
2020-06-24 TIL  (0) 2020.06.24
2020-06-23 TIL  (0) 2020.06.23
2020-06-22 TIL  (0) 2020.06.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함