회고록 (24.05.13 - 24.05.19 )

JSLEE·2024년 5월 19일

1. 공부했던 내용들

  • express-validator 로 유효성 검사
  • Authentication(인증), Authorization(인가)
  • cookie , JWT(JSON Web Token)
  • dotenv 를 통해 .env파일 환경변수 사용
  • cookie 보안 설정 (HttpOnly, Secure)
  • JWT 발행 및 만료 시간 설정

2. 궁금했던 점들

21. 유효성 검사(Validation) - 0513

Q. 유효성 검사에서 사용되는 다른 메소드들은 뭐가 있을까?

강의를 통해 공부했을 때 사용했던 메소드들은 .isInt(),.notEmpty(),.withMessage() 등이 있었다.
유효성 검사에서 사용할만한 다른 메소드들을 눈도장이라도 찍어놓으면, 나중에 활용하기 좋을 것 같아서 몇가지 검색을 해봤다.
express-validator Methods

1. 사용자 정의 유효성 검사 -.custom()

body("password").custom((value, { req, location, path }) => any)
//value : 유효성 검사를 하고자 하는 값
//req : request 
//location : body, param, query
//path : 필드명 ex) req.body.id 인 경우, path = id

우리가 회원가입을 하거나 할 때, 비밀번호, 비밀번호 확인 의 값을 입력받게 되는데, 이 경우에 자주 사용할 수 있을 것 같다.

// 예제 : req.body의 password와 password_check 유효성 검사
body('password').custom( (value, {req}) => {
	if (value == req.body.password_check){
    	return true
    } else {
    throw new Error("비밀번호와 비밀번호 확인의 값이 다릅니다.")
    }
}

2. 이메일 유효성 검사 - .isEmail()

body('email').isEmail()

3. 문자열 길이 검사 - .isLength({ min : , max : })

body('name').isLength({min : 2 , max : 4})

4. 숫자와 알파벳만 허용 - isAlphanumeric()

body('nickname').isAlphanumeric()

5. 숫자만 허용 - isNumeric()

body('age').isNumeric()

6. 필드값이 배열 안의 값에 해당되는지 확인 - isIn([])

body('authority').isIn(['admin', 'user'])

7. 휴대폰 번호 형식 확인 - isMobilePhone(locale)

body('contact').isMobilePhone('ko-KR')

8. 날짜 유효성 확인 - isAfter(date) & isBefore(date)

body('date').isAfter('2024-05-19')

22. JWT (JSON Web Token) , .env - 0514

Q. next( ) 순서와 return 작성 여부에 따른 결과 차이

Case 1 : return 없음, next( )를 최상단에 적은 경우

app.all('/url' , (req,res,next) => {
  next()
  console.log("all")
})

app.get('/url', (req,res,next) => {
  console.log("get")
})

/* 결과 : 
get
all
*/

Case 2 : return 없음, next( )를 최하단에 적은 경우

app.all('/url' , (req,res,next) => {
  console.log("all")
  next()
})

app.get('/url', (req,res,next) => {
  console.log("get")
})
/* 결과 : 
all
get
*/

Case 3 : return과 함께 next( )를 사용한 경우

app.all('/url' , (req,res,next) => {
  return next()
  console.log("all")

})

app.get('/url', (req,res,next) => {
  console.log("get")
})
/* 결과 : 
get
*/

Q. git ignore이란?

github에 업로드 되는 것을 원하지 않는 파일을 제외시키기 위해 사용

<방법>
1. git 프로젝트 안에, .gitignore 파일을 생성
2. 해당 파일에, 제외하고자 하는 파일들을 작성

profile
공부한 내용들을 정리하기 위해 사용하는 블로그입니다.

0개의 댓글