[웹 백엔드] 6. Express 기본 폴더 구조

Log_master·2022년 9월 7일
2

웹 개발

목록 보기
7/8

저는 node.js와 express를 이용하여 개발을 하던 중 원래 폴더 구조를 잘 모르고 그냥 js 파일과 기타 파일들을 관리하고 있었는데, 이게 또 구조가 정해져있다는 사실 여러분들은 알고 계셨나요?

참고로 express는 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크입니다.

참고 사이트
https://expressjs.com/ko/

Express 설치

$ npm install express --save

cmd 창이나 자신의 vscode 터미널 상에서 저 명령어를 치면 알아서 설치가 됩니다.
이렇게 정상적으로 설치가 되면 package.json에 dependencies가 추가됩니다!

이처럼 전체 폴더 안에 public, routes, views 세 폴더가 존재하고 맨 바깥에는 app.js와 pakage.json 파일이 존재해야합니다.

Express 기본 폴더 구조

/public
/routes
/views
web.js(or app.js)

  • conf : DB 연결정보, API 키값 등 환경변수 정보 저장
  • public : 정적 파일을 위한 폴더로서 자바스크립트 파일, 이미지 파일, CSS 등을 포함합니다. 웹 URL의 루트폴더로 생각하시면 됩니다. 관리를 쉽게 하기 위해 js와 css로 폴더를 구분합니다.
  • routes : 라우팅을 위한 폴더입니다. 라우팅 리소스 별로 모듈을 만들어 라우팅 로직을 구현. 클라이언트에서 요청별로 어떤 logic을 수행할지 정해놓은 파일입니다. (java에서는 Controller 역할)
  • views : request 요청에 대한 logic을 처리한 후 클라이언트에 응답을 보낼 때 html 코드로 변환해서 반환하는 파일을 정의한 폴더입니다. 여기선 ejs 템플릿을 사용합니다.
  • app.js(or web.js) : express 설정파일이 담겨있는 파일입니다.(보통 파일 자동생성시 app.js로 되어 있는데 cafe24를 호스팅으로 사용할 경우 파일 이름을 web.js로 설정해야 합니다.)
  • package.json : 프로그램 이름, 버전, 필요한 모듈 등 노드 프로그램의 정보를 기술합니다. (npm은 이 정보를 참고하여 필요한 모듈을 관리)

프로토콜의 메소드에 따라 여러 함수를 사용할 수 있습니다.
라우팅 매핑시 클라이언트 요청의 URL + 프로토콜 메소드를 사용합니다.

GET(조회): router.get()
POST(저장): router.post()
PUT(수정): router.put()
DELETE(삭제): router.delete()

res 파라미터는 클라이언트로 응답을 하는 객체로서 응답을 위한 함수는 여러개가 존재합니다.

res.send(): 문자열로 응답
res.json(): 제이슨(Json) 객체로 응답
res.render(): html 변환 템플릿을 렌더링(ejs)
res.sendfile(): 파일 다운로드

express 서버 메소드 정리 및 개발 및 관리를 편하게 하기 위한 기본 폴더 구조에 대한 정리를 마치겠습니다.

profile
기술이 세상을 e롭게

0개의 댓글