자바스크립트 - 함수 호이스팅을 이용한 코드 정리
시스템 2023. 12. 3. 01:37함수 호이스팅 적용 전
app.post("/login", function (req, res) {
db.select(
"users",
{ where: { email: req.body.email } },
function (err, user) {
function end(user) {
req.session.user = user;
res.redirect("/");
}
if (user && user.password === req.body.password)
return end(user);
db.insert(
"users",
{
email: req.body.email,
password: req.body.password,
},
function (err, user) {
end(user);
}
);
}
);
});
end 함수가 상위에 선언되어 있어, 가독성이 떨어진다.
자바스크립트의 호이스팅을 이용하면 다음과 같이 활용할 수 있다.
app.post("/login", function (req, res) {
db.select(
"users",
{ where: { email: req.body.email } },
function (err, user) {
if (user && user.password === req.body.password)
return end(user);
db.insert(
"users",
{
email: req.body.email,
password: req.body.password,
},
function (err, user) {
end(user);
}
);
function end(user) {
req.session.user = user;
res.redirect("/");
}
}
);
});
end 함수를 아래 쪽에 배치하여 핵심적인 로직을 상위에 위치시켜 가독성을 높인다.
노트-react 디자인 패턴 고려 사항: 기능 재사용 (0) | 2024.01.07 |
---|---|
뷰와 로직의 분리: 시작 단계, 문제 인식 (1) | 2024.01.07 |
함수 조합 (0) | 2023.11.29 |
개발 시 환경 변수 적용 (0) | 2023.11.24 |
시맨틱 웹 (0) | 2023.11.11 |