MVC (Model-View-Controller)
라이브러리 개념은 아니고 서비스가 돌아가는 방식에 대한 아이디어 혹은 패턴이다.
Database ↔ Model ↔ Controller ↔ Client, View
와 같은 구조를 가지고 있다.
Express, Angular, Django 등등 많은 프레임워크 들이 이 방식을 사용하고 있다.
Model
- knowledge
- handles data
- interaction with Database
View
- visual representation of a model
- what the users see(UI)
Controller
- receives input
- process requests
- get data from a model
- pass data to the view
require 디폴트
require(’폴더명’) 으로 받아오면 디폴트로는 index.js가 들어온다?
package.json → index.js → index.load? 이런 순으로 탐색
ORM
데이터베이스 테이블을 객체처럼 표현하는 것
객체지향에서 데이터를 방법과 관계형 데이터베이스의 데이터를 접근하는 방법이 다르다.
mysql 모듈을 쓰면 자바스크립트 코드를 sql문으로 변환 가능 ⇒ sql문 없이 관계형 데이터베이스에 접근 가능
Sequelize
- a promise-based Node.js ORM
- MySql, Postgres, MariaDB 등의 데이터베이스에 접근 가능
- id(primary key)는 따로 안적어도 알아서 만들어줌
- created At 도 따로 알아서 만들어줌
Association, Transaction at Sequelize
- Association : join개념
- Transaction : 쿼리의 조합을 작업단위로 보고 문제가 생기면 롤백
- api 문서 참고