# 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 |