2019/11/14 - [띡딱똑띡 개발자 Hanna] - NodeJS와 MongoDB로 SNS 만들어보기 - user_passport (로그인 라우터)
NodeJS와 MongoDB로 SNS 만들어보기 - user_passport (로그인 라우터)
저번 포스트에서는 전체적인 폴더 구조를 설명했고 이번 포스트에서는 현재까지 구현된 router의 전체 목록을 설명하고자 합니다. > user_passport.js user_passport.js 파일에는 '로그인'과 관련된 라우터들이..
granora2019.tistory.com
ㄴ 이전 글
* 현재까지 설명한 router => 7번 (user_passport)
* 현재 설명하고자 하는 router => 10번 (user_profile)
> user_profile
user_profile.js는 프로필관련 라우터들을 정의한 파일입니다.
기획 상 회원가입을 '아이디 입력 (중복체크 필요)' => '닉네임 입력' + '이메일 광고 수신 동의 여부 선택'
=> '약관 동의 후 시작' 순으로 진행하기로 했기 때문에 이에 맞게 /SignUp 라우터는 바꾸어야합니다.
또한 프로필 디자인이 어떻게 나오냐에 따라 디테일을 바꿔야할 것입니다.
1, 2번 라우터를 보면 동일한 프로필 수정 라우터지만,
post 파라미터로 image값이 오냐에 따라 나누었습니다.
현재 'multer-storage-cloudinary' 라는 모듈을 통해 파일을 처리하고
있기때문에 이미지 처리가 필요한 경우가 필요하지 않은 경우로 나눠 처리하고 있습니다.
(Cloudinary 함수 관련해서는 라우터 목록 설명 후 따로 포스팅을 하겠습니다.)
> function_profile
function_profile.js는 user_profile.js에서 프로필 관련 처리 시 필요한 함수들을 정의한 파일입니다.
UPDATETYPE (enum) 변수는 updateUser 함수 (프로필 수정 함수)에서 활용됩니다.
1. 회원가입인 경우 : UPDATETYPE.Create
2. 프로필 수정인 경우 (프로필 이미지 수정 X) : UPDATETYPE.Update
3. 프로필 수정인 경우 + 기본 이미지로 되돌아간 경우: UPDATETYPE.UpdateBasic
4. 알림 수정인 경우 : UPDATETYPE.Notice
5. 프로필 수정인 경우 (프로필 이미지 수정 O) : UPDATETYPE.ProfileImg
6. 단순 기본 프로필 이미지 설정인 경우 : UPDATETYPE.BasicImg
굳이 enum을 사용하지 않아도 되지만 코드 가독성 + 헷갈리지 않고 관리하고자 enum을 활용했습니다.
해당 function_profile.js 파일 속 함수들을 user_profile.js 파일에서
사용하고자 하는 경우에는 다음과 같이 사용하면 됩니다.
// 파일 불러오기
var profileAPI = require('./functions/function_profile');
// profileAPI 변수접근을 통해 함수 사용
profileAPI.getUserData(...);
profileAPI.checkUserName(...);
// UPDATETYPE (enum) 값은 getType() 함수를 통해 접근
profileAPI.updateUser(database, profileAPI.getType().ProfileImg, paramID, paramUser, function(...) {});
* Router 상세 정보 *
POST /modifyUserPlus
* 프로필 수정 (프로필 이미지 수정하는 경우)
>> 필요 파라미터 <<
{
name: 사용자 아이디로 설정할 값 (String),
ㄴ 아이디 중복 시 에러 처리로 넘어갑니다!
ㄴ 아이디는 [ 숫자 영어 . _ ] 만 허용됩니다.
ㄴ 길이는 2자~30자여야 합니다.
nickname: 사용자 닉네임으로 설정할 값 (String)
ㄴ 닉네임은 [ 숫자 영어 한글 _ ] 만 허용됩니다.
ㄴ 길이는 1자~20자여야 합니다.
info: 사용자 프로필 소개글로 설정할 값 (String)
ㄴ 길이는 0자~100자여야 합니다.
photo: 사용자 프로필 이미지로 설정할 파일 ( - )
ㄴ 한 장 보내주세요!
ㄴ 서버에서 처리 시 자동으로 100x100으로 잘라 저장합니다.
}
> 에러 발생 시
{
isProfileImg: false (boolean),
errorMsg: 에러 메세지 (String)
}
> 정상 작동 시
{
isProfileImg: true
}
POST /modifyUser
* 프로필 수정 (프로필 이미지 수정 X or 기본 프로필 이미지로 설정 시)
>> 필요 파라미터 <<
{
name: 사용자 아이디로 설정할 값 (String),
ㄴ 아이디 중복 시 에러 처리로 넘어갑니다!
ㄴ 아이디는 [ 숫자 영어 . _ ] 만 허용됩니다.
ㄴ 길이는 2자~30자여야 합니다.
nickname: 사용자 닉네임으로 설정할 값 (String)
ㄴ 닉네임은 [ 숫자 영어 한글 _ ] 만 허용됩니다.
ㄴ 길이는 1자~20자여야 합니다.
info: 사용자 프로필 소개글로 설정할 값 (String)
ㄴ 길이는 0자~100자여야 합니다.
isBasicImg: 사용자 프로필 이미지를 기본 프로필 이미지로 설정할 지 여부 (boolean)
ㄴ true면 기본 프로필 이미지로 설정합니다.
}
> 에러 발생 시
{
isUpdateUser: false (boolean),
errorMsg: 에러 메세지 (String)
}
> 정상 작동 시
{
isUpdateUser: true
}
POST /modifyNotice
* 알림설정, 이메일 수신 동의 여부 수정
>> 필요 파라미터 <<
{
pushNotice: 푸쉬 알림 설정 여부, 1이면 설정 상태 (int),
emailNotice: 이메일 수신 동의 여부, 1이면 설정 상태 (int)
}
> 에러 발생 시
{
isModifyNotice: false (boolean),
errorMsg: 에러 메세지 (String)
}
> 정상 작동 시
{
isModifyNotice: true (boolean)
}
GET /checkUserName/:name
* name에 해당하는 값으로 아이디(userName) 중복 체크
> 에러 발생 시
{
isCheck: false (boolean),
errorMsg: 에러 메세지 (String)
}
> 정상 작동 시
{
isCheck: false (boolean),
isExist: 존재 여부, true면 중복되는 아이디 (boolean)
}
POST /SignUp
* 회원가입
>> 수정 중입니다. (11/14 미완)
ㄴ 프론트(Flutter)를 위한 라우터 상세 정보 입니다.
'띡딱똑띡 개발자 Hanna' 카테고리의 다른 글
NodeJS와 MongoDB로 SNS 만들어보기 - user_posting (게시글 라우터) (0) | 2019.11.14 |
---|---|
NodeJS와 MongoDB로 SNS 만들어보기 - user_follow (팔로우 라우터) (0) | 2019.11.14 |
NodeJS와 MongoDB로 SNS 만들어보기 - user_passport (로그인 라우터) (0) | 2019.11.14 |
NodeJS와 MongoDB로 SNS 만들어보기 - 현재 폴더 구조 (0) | 2019.11.14 |
NodeJS와 MongoDB로 SNS 만들어보기 - 데이터 스키마 구조 (0) | 2019.11.10 |
댓글