`ctx.body` does not stop function

흔히 koa를 처음 사용하는 주니어 개발자들(나 포함)이 express 와 마찬가지로 이제 클라이언트에 response를 보내기 위해 흔히 하는 방법인 res.send() 를 사용하지 않고 koa만의 방법인 ctx.body = ~ 을 사용하여 개발을 한다.


오류

if(!result){
        ctx.body = {
            exceptions: "",
            status: 500,
            error: false,
            message: "wrong pw",
            };     
    }
    const token = await sign(result)
    ctx.body = {
        exceptions: "",
        status: 200,
        error: true,
        message: "success to loign",
        token: token
        };

나는 이제 회원가입 및 로그인 api를 짜는 도중에, 분명히 비밀번호가 틀렸는데도 불구하고, token을 만들어 repsonse하는 것을 보았다.
뭐가 문제지 하고 구글링을 하는데...

반드시 return을 함께 작성해야 한다는 것을 알았다. 어찌 보면 당연한 건데 return 없이 res.send 만 하던 express의 안좋은 습관 때문에 고생했다..


오류 해결

if(!result){
        ctx.body = {
            exceptions: "",
            status: 500,
            error: false,
            message: "wrong pw",
            };     
    }
    const token = await sign(result)
    ctx.body = {
        exceptions: "",
        status: 200,
        error: true,
        message: "success to loign",
        token: token
        };

좋은 웹페이지 즐겨찾기