카테고리 없음

TILWIL2024-12-1

foreiner852 2024. 12. 2. 03:31

아이템 관리 프로잭트

 

api의 기초와 aws 서비스의 활용

 

시작하고나서 미들웨어를 일단 만들고 시작해야겠다라고 판단을 하고 시작을 했다.

 


app.use(validationOrRefresh);
app.use("/api", validationOrRefresh, [UsersRouter, charactersRouter, items]);
app.use(validationOrRefresh);
 

 

내용을 만드는것은 어렵지 않았다. 내용이 맞는지는 둘째치고 내가 생각한 내용대로 만들었기에 에러만 안나면 정상이라고 생각했기 때문이다.

하지만 다른 문제가 더 크게 다가왔다.

이 미들웨어는 도대체 어디로 들어가야 하는가?

에러 처리 미들웨어는 어렵지 않았다. app.listen 하기 바로 전에 하라고 배웠으니까.

근데 이 미들웨어라는 것이 라우터 앞에도 붙을수 있고 아예 전에도 쓸수 있었다.

솔찍하게 말하자면 2번쨰 줄에 있는 코드를 랜덤으로 찍어서 아마도 의도한 대로 작동했고 마무리 지었다.

 

app.use 부분이 순서대로 진행된다고 배우기는 했지만 "/api"뒤에 붙는것이 특별한 의미를 가지는지 잘 모르겠다.

 

두번쨰로는 멍청한 문제로 하루를 날렸다. 검증 미들웨어에서 

    next();

이 함수를 마치 함수에서 return을 사용하듯이 사용한 것이다.

 

결과적으로 미들웨어에서 여러번의 next를 실행한 덕분에 여러 res를 할수 없다는 에러를 받았고 로그인 라우터에 문제가 있다고 생각해 같은 내용을 하루 종일 읽고 검색했다.

당연히 문제가 되는 부분이 아님으로 검색해도 해결법이 나올리가 만무했고, 디버깅도 어떻게 해야할지 감이 안왔다.

그러다 첫번쨰 문제로 돌아가 미들웨어 위치를 이리저리 옮기는 과정에서 미들웨어를 제거하자 문제가 사라졌고 검증 미들웨어로 돌아가 문제를 해결했다.

 

이후는 그렇게 어렵지 않았다.

로그인을 복사해서 아이템이랑 캐릭터 라우터를 3시간도 걸리지 않고 마무리 했다.