• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

return 유무

21.02.17 16:02 작성 조회수 131

0

routes/ page.js

router.get('/profile', (req, res) => {
res.render('profile', { title: '내 정보 - NodeBird' });
});

router.get('/join', (req, res) => {
res.render('join', { title: '회원가입 - NodeBird' });
});

router.get('/', (req, res, next) => {
const twits = [];//메인게시물들
res.render('main', {
title: 'NodeBird',
twits,
})

})

에서는 return 문을 쓰지 않는데 

routes/auth.js 와 같이

outer.post('/join', async (req, res, next) => {
const { email, nick, password } = req.body;
try{
const exUser = await User.findOne({ where: {email} });
if (exUser){
return res.redirect('/join?error=exist'); //front에서 query보고 처리
}
const hash = await bcrypt.hash(password, 12);
await User.create({
email,
nick,
password: hash,
});
return res.redirect('/');
} catch(error){
console.error(error);
return next(error);
}
});

return 으로 next(error)나 res.render 등등 을 해주는 이유가 뭔가요?

답변 2

·

답변을 작성해보세요.

0

tnwjdrms님의 프로필

tnwjdrms

질문자

2021.02.17

아 그렇군요! 감사합니다😁

0

명시적으로 함수가 종료된다는 것을 보여준 거고요. 위 예제에서는 안 붙여도 되지만 붙이는 습관을 들이는 게 에러가 안 나서 좋습니다. 잘못해서 res 메서드가 두 번 이상 호출되면 cannot send header twice라는 에러 발생하거든요.