일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ES6
- CLONE
- Flutter
- react
- CSS
- pug
- MongoDB
- heroku
- form
- JavaScript
- graphQL
- NextJs
- backend
- 리액트
- API
- node.js
- TypeScript
- 자바스크립트
- clonecoding
- express
- nodejs
- ECMAScript
- frontend
- GRID
- HTML
- Mongoose
- Component
- DART
- Session
- javscript
- Today
- Total
Enjoy Programming
Express - edit User Profile 본문
기존 프로필 수정 페이지는 get방식만 있었다
그런데 이제 프로필 이미지 수정이나 이름 수정 , email 수정등을 추가할 예정이라
이제 post방식의 컨트롤러도 하나 만들어 준다.
수정했으니 이제 라우터도 바꿔주자
음 이제~~ 프로필 이미지 변경에 필요한 미들웨어를 하나 만들어 준다.
비디오 업로드와 동일하다~~
인코딩 타입 정해주고~ 업로드 파일 형식 지정을 해줬다. 그리고 프로필 수정페이지에 들어가면
인풋박스에 벨류값으로 현재 로그인된 유저의 이름과 이메일을 띄워준다.
그리고 postEditProfile 컨트롤러를 만들어주자
먼저 body parser를 통해 이름과 이메일 업로드 파일을 가져오고
만약 파일이 있다면 이전에 저장소에 저장된 파일을 경로를 통해 삭제해주고
또한 함께 db의 avatarUrl을 file.path로 업데이트 해준다
만약 파일이 없다면 기존 파일 그대로 유지해준다.
에딧이 이루어 졌다면 profile페이지로 돌아간다. 에러가 있으면 수정페이지를 다시 랜더링 해준다~
이렇게 하면 일단 전부 수정은 되나. 문제가 하나 있다 소셜계정의 경우 소셜의 이메일을 가져온다.
근데 이메일을 수정하면 소셜 계정과 이메일이 달라지므로 해당 프로필을 불러오질 못한다..
이부분은 차후에 차차 수정해보자
----- 수정사항 -----
local로 가입하고 프로필 사진을 업로드 했더니 업로드 안되고 그냥 저장소에 파일url만 생성되었다...
보니까 애초에 avatarUrl이 생성이 안되있다 보니... req.user.avatarUrl을 가져오지 못하니
수행을 못하고 넘어가버린 문제였다
req.user.avatarUrl이 tru이면으로 조건을 달아주고 끝
'JavaScript > Node.JS' 카테고리의 다른 글
Express - Adding Creator to Video (0) | 2021.05.16 |
---|---|
Express - (passport-local-mongoose) - Change Password (0) | 2021.05.16 |
Express - passport kakaotalk (0) | 2021.05.14 |
Node.js - 저장된 파일 삭제 (0) | 2021.05.14 |
Express - faebook Log In (0) | 2021.05.13 |