DevOps/gitlab
[Node.js] Cannot get / 에러 해결
mkdir
2021. 9. 10. 22:52
개요
- Swagger를 적용한 node.js 웹사이트 하나를 띄워달라는 요청을 받음.
과정
- 특이하게 사내 템플릿으로 적용하는 PostgreSQL이 아니라 MySQL을 쓴다고 한다....덕분에 템플릿이 없어 DB로부터 각종 값을 받아오는 api는 동작이 불가능한 상태(artifacthub가 아니라, private helm core를 사용하고 있다).
- 코드를 받아서 돌렸더니 38 line에서"address is already use" 에러가 나온다. 다시 봐보니 개발자가 확인용 console.log를 두개 찍어놨는데, 동일한 포트로 띄워놨던 것이다...
- 해당 부분을 수정해 다시 올렸더니 이번엔 "cannot get /"가 뜬다.
- 검색해보니 해당 라우트 경로가 없어서 생기는 에러라고 한다.
- livenessProbe/readinessProbe가 "/" 경로로 GET을 날리도록 설정되어있는데, 정작 어플리케이션의 "/" 경로에선 POST를 받도록 만들어놨다.... 찾아봐도 DB 연동 없이 단순 GET을 날릴 수 있도록 만든 라우터는 없었다.
- 이야기를 들어보니, 기기측에서 루트 경로로 POST를 날리면 바로 기기 등록과 함께 api가 실행되도록 하려고 했다고 한다.
- 따라서, "/" 경로에 새로 "GET"을 받을 수 있는 테스트 라우터를 생성해놨다.
app.get('/', function (req, res) { res.send('테스트입니다.'); });
- 빌드 성공!