node router에서 function return 받아서 res 처리하기
router.post...
에서 안에 if else가 너무 많아져서
깔끔하게 함수로 안의 내용을 뺀후
해당함수값을 받아서
res.json으로 보내려고하는데
return 값이 안찍히네요
콘솔로 찍어보니 분명
let ex = emailReturn(email);
res.json({message : ex})
이렇게 되어있는데 ex값 undefinded 로 나오고
function 안에서는 값 잘나오는데 말이죠..
console로 이것저것 찍어보니 순서랑 상관없이 res먼저 찍히고 함수가 돌아가는 것 같은데
제대로 값 받을수있는 방법 없을까요?ㅠㅠ?
55글자 더 채워주세요.
1개의 답변이 있어요!
혹시 emailReturn 함수가 통신을 한다거나 하는 비동기적인 함수가 아닐까요? 보통 질문 주신 상황은 Async await를 이용하면 해결됩니다.
let ex = await emailReturn()
res.json()
이렇게 해서 동기적으로 만들어주는거죠.
라우터에 async 붙이는 거 잊지마시구요.
만약에 그런 문제가 아니라면 라우터 자체를 다시 천천히 작성해보세요. 절대 res.json이 먼저 호출되지 않습니다.