[데브코스] WIL 7

devlog·2024년 4월 15일
0

풀뎁코

목록 보기
8/14
post-thumbnail

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);
      // '2024-03-14 12:09:04'
  • 시간 범위 설정하여 SELECT
    • 최근 한달 이내

      SELECT * FROM books WHERE pub_date BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW();

데이터 베이스 페이징

  • 전체 도서 리스트 중 페이지 별로 몇개의 데이터를 보내줄 지 정함

0개의 댓글