티스토리 뷰

TIL

2020-06-03 TDD Refactoring & Passport

Hoon1994 2020. 6. 3. 23:37

# TDD 

 

어제 작성한 "두 정수 사이의 합" 테스트 코드를 리팩토링 했다.

 

const arrayCompare = (a, b) => {
  const array = [];
  const maxNum = a > b ? a : b;
  const minNum = a < b ? a : b;

  for (let i = minNum; i <= maxNum; i++) {
    array.push(i);
  }

  return array;
};

export const solution = (a, b) => {
  return a === b ? a : arrayCompare(a, b).reduce((ac, cu) => ac + cu);
};

 

숫자가 같을 경우 정수 사이의 합이 없기 때문에 그대로 리턴해주는 코드를 추가하고, 

maxNum & minNum에 담는 값을 바로 계산하여 indent를 줄이고, 

삼항연산자를 사용하여 if 문을 제거했다. 

 

조금 더 간결하고 가독성있고, 좋은 코드가 있을 거 같은데 머리가 멈춰버렸다. 

 

 

#Youtube Clone Toy Project 

 

Youtube Clone 토이 프로젝트 강의를 거의 중간 정도 봤다.

오늘은 passport 라는 인증 모듈을 사용하여 유저를 등록하고 로그인하게 구현했다. 

 

export const postJoin = async (req, res, next) => {
  console.log(req.body);
  const {
    body: { name, email, password, password2 },
  } = req;
  if (password !== password2) {
    res.status(400);
    res.render('join', { pageTitle: 'Join' });
  } else {
    res.redirect(routes.home);
  }
  try {
    const user = await User({
      name,
      email,
    });
    await User.register(user, password);
    next();
  } catch (error) {
    console.log(error);
    res.redirect(routes.home);
  }
};

 

form을 통해 name, email, password 를 전송받아 password가 같은지 확인해주고, 

같지 않으면 400 error를 내리고 로그인화면을 다시 render 한다. 

 

로그인에 성공한 경우, 홈 화면을 render 해준다. 

 

들어온 정보를 가지고 User.register(user, password) 를 통해 유저를 등록해주고 next() 함수를 호출해준다.

지금 돌아보니 코드가 뭔가 리팩토링이 필요해보인다. 고쳐봐야겠다.

'TIL' 카테고리의 다른 글

2020-06-18 TIL  (0) 2020.06.18
2020-06-17 Node.js & MongoDB  (0) 2020.06.17
2020-06-09 TDD  (0) 2020.06.09
2020-06-04 TDD & NodeJs  (0) 2020.06.04
2020-06-02 TDD 입문  (0) 2020.06.02
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함