본문 바로가기

Web Development/Back-end

(39)
[형변환] Golang ([]byte -> big.Int) func MakeByteToBigint(data []byte) *big.Int{ result := new(big.Int) result.SetBytes(data) fmt.Println("바이트슬라이스 -> 빅인트 :", result) return result }
[Error] Cannot set headers after they are sent to the client (클라이언트로 보내진 헤더를 다시 조정할 수 없다는 의미) 원인 : 즉, 응답값 (Nodejs에서는 res.send 혹은 res.json 등을 의미한다)이 중복되어 클라이언트에 전달되어 생겨나는 문제. 내 애플리케이션 사례 : 미들웨어에서 s3버킷에 있는 객체를 삭제하고 -> Post Delete Controller에서 글을 삭제하는 로직을 수행함. 그런데, s3를 삭제하는 미들웨어에서 res.json으로 프론트엔드에 삭제성공 데이터를 보내고, Delete Controller에서 다시 res.json으로 프론트엔드에 삭제성공 메세지를 중복되게 보내는 실수. 해결방안 : 미들웨어에서는 응답값을 삭제하고, 단순히 next()를 통해 다음 컨트롤러로 이동시켜줄 수 있도록 수정함.
Node 프로젝트에서 .gitignore 기본값 Nodejs 프로젝트에서, .gitignore로 깃에 올라가는 파일을 제외시킬 수 있다. 기본적으로 node_modules 폴더를 제외시킨다. 왜냐하면, 'npm install' 명령어를 통해, 의존하는 패키지를 한번에 설치할 수 있기에 따로 포함시켜 용량을 높일 필요가 없기 때문이다. node_module외에, 추가적으로 기본적으로 제외시켜야 할 파일들이 있는데 잘 정리된 것이 있어, 기록한다. node_modules package-lock.json # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* # Diagnostic reports (https://nodejs.org/api/report.html) rep..
Express - Router(라우터) 라우터란? "라우팅은 애플리케이션 엔드 포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 말합니다." 즉, URI를 다루는 기법이다. 주소창에 www.tistory.com/manage/~~~~ www.tistory.com/board/~~~~ 이런식으로, 카테고리 별로 묶을 수 있다. 기본적으로 app.get('/manage', 콜백함수) { // www.주소.com/admin/ 어드민의 루트페이지. res.send(`Management Page`); }) adminRouter.get('/enroll', (req, res) => { // www.주소.com/admin/enroll 접속페이지 res.send(`Enroll Page`); }) adminRouter.get('/uploa..