express -generator 구조
- bin/www
- 포트 번호 등과 같은 웹 서버를 구축하는데 필요한 설정 데이터가 정의되어 있는 파일
- .env와 같이 설정 값으로 에러 처리, 기타 추가 설정을 해주는 파일
- node_modules
- node.js, Express에 필요한 모듈들이 설치되는 폴더
- publice
- 정적 파일 e.g. images, javascripts, stylesheets
- routes
- 라우팅 로직을 구현하는 모듈들이 들어있는 폴더
- 클라이언트의 요청에 따라 어떤 로직을 수행할지 파일별로 분할해서 관리
- cf. 자바의 컨트롤러 역할
- views
- 클라이언트에게 html 코드로 화면을 보내는 파일
- app.js
- express 서버의 시작점
- URI에 따라 라우팅
- package.json
- 해당 프로젝트에 설치된 모듈 이름, 버전 등등 정보들이 작성되어있는 파일
http-status-codes 모듈
- status코드를 직접 숫자로 하드코딩하지 않고 관리할 수 있는 모듈
node.js 패키지(파일) 구조
- app.js
- /routes
- /books, /users …
- 하위 라우터 역할
- 라우터에서 로직까지 수행할 시 프로젝트 규모가 커질수록 가독성이 떨어지고, 유지보수하기 어려워짐
컨트롤러
JOIN
SELECT * FROM BookStore.books left
JOIN category ON books.category_id = category.id;
MY SQL 데이터베이스 시간 범위 구하기
- 시간 더하기
- DATE_ADD (기준 날짜, INTERVAL)
- 시간 빼기
-
DATE_SUB (기준 날짜, INTERVAL)
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
- 시간 범위 설정하여 SELECT
데이터 베이스 페이징
- 전체 도서 리스트 중 페이지 별로 몇개의 데이터를 보내줄 지 정함