기초 세팅을 위한 간략한 설명만 기재, 자세한 내용은 깃허브의 코드 확인
CRUD
- Create, Read, Update, Delete
- 등록, 보이기(읽기), 수정하기, 삭제하기
$ npm install mysql
const mysql = require('mysql');
const conn = mysql.createConnection({
host: 'localhost', // DB가 설치된 호스트 IP 주소
user: 'root', // DB 접속 유저이름
password: '1234', // DB 접속 비밀번호
database: 'sesac', // DB 이름
});
외부에서 최상위 root 게정으로 비밀번호 접근을 허용하지 않음!
→ 새로운 사용자(user 계정)을 만들고 그 사용자로 접근해야 함
(모든 DB에 접근 가능하도록 권한 부여해야 함)
// model/Visitor.js
exports.getVisitors = (cb) => {
coon.query(`SELECT * FROM visitor`, (err, rows) => {
if (err) {
thorw err;
}
console.log('Visitor.js: ', rows);
cb(rows);
});
};
// controller/Cvisitor.js
exports.getvisitors = (req, res) => {
Visitor.getVisitors((result) => {
console.log('Cvisitor.js: ', result);
res.render('visitor', { data: result});
});
};
Aplication Programming Interface
한 프로그램에서 다른 프로그램으로 정보를 주고받기 위한 규약
웹 서비스 개발에 널리 사용되는 아키텍쳐 스타일
resource, method
- resource : 내가 필요한 데이터, 모든 데이터들은 특정 장소에 보관되어 있음 (HTTP URI를 통해 자원을 명시)
- method : CRUD 중 어떤 방식으로 요청할 것인지
representational state transfer API
OPEN API를 사용한다면 백엔드가 없어도 공개된 서버에서 데이터를 불러올 수 있다!
ORM이란?
- Object Relational Mapping (관계 객체 매핑)
- 객체와 데이터베이스 관계를 매핑(연결)하는 도구
- 프로그래밍 언어의 객체와 데이터베이스 사이의 중계 역할
- SQL 언어를 직접 다루지 않고도 프로그래밍 언어로 DB 조작 가능
npm install sequelize sequelize-cli mysql2
# sequelize : 시퀄라이즈 패키지
# sequelize-cli : 시퀄라이즈 명령어 실행
# mysql2 : mysql과 시퀄라이즈를 연결하는 드라이버 (도구)
npx sequelize init
# sequelize init 명령어 호출
위 과정 실행 후, 파일 구조가 변경됨!
Sequelize.define(param1, param2, param3);
// param1 : 모델(테이블) 이름 설정
// param2 : 컬럼 정의
// param3 : 모델 옵션 정의
Sequelize.STRING // VARCHAR(255)
Sequelize.STRING(1234) // VARCHAR(1234)
Sequelize.TEXT // TEXT
Sequelize.TEXT('tiny') // TINYTEXT
Sequelize.INTEGER // INTEGER
Sequelize.DATE // DATETIME
charset: "utf8"
collate: "utf8_general_ci" // sequelize에서 설정하지 않을 경우, DB 생성 시 설정해야 함
tableName: 테이블 이름 설정
freezeTableName: true로 설정하면 이름을 복수로 설정하지 않음
timestamps: 기본적인 설정은 true
findAll() // select
findOne() // select
create() // insert
update() // update
destroy() // delete