강의 목록 : https://www.youtube.com/playlist?list=PLcqDmjxt30RsbFOspFG3EsxMwhFSnGFLw
1. ZeroCho의 Node.js 교과서 강좌 0.인트로
1-1. 노드란 무엇인가 & 설치 방법
1-2. REPL과 헬로 노드
2-1. const와 let
var, let, const의 차이
앞에서 발견한 var 키워드의 문제점은 크게 세 가지가 존재한다.
- 변수 중복 선언 가능하여, 예기치 못한 값을 반환할 수 있다.
- 함수 레벨 스코프로 인해 함수 외부에서 선언한 변수는 모두 전역 변수로 된다.
- 변수 선언문 이전에 변수를 참조하면 언제나 undefined를 반환한다.
ES6에서 나온 let과 const 키워드는 위의 세 가지 문제점을 해결했다.
2-2. 템플릿 문자열(백틱, `)
.
2-5. 비구조화 할당(destructuring)
const array = ['nodejs', {}, 10, true]; const [node, obj, , bool] = array;
2-6. rest 문법과 Q&A
2-7. 콜백과 프로미스(Promise) 비교
2-8. 프로미스(Promise) 이해하기
2-9. 프로미스(Promise) API
2-10. async/await
3-1. 노드 모듈 시스템
3-2. global 객체
4-1 http 모듈, localhost, 포트
4-2. 응답으로 파일 읽어 보내기
5-1. npm 설명과 패키지 만들기(package.json)
5-2. 패키지 설치하기
6-1. express-generator, npm scripts, bin/www
6-2. express app.js 이해하기
7-1. 시퀄라이즈(sequelize)와 MySQL 설치
create user `nodejs_textbook`@`localhost` identified by '1111'; create database nodejs_textbook CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; grant all privileges on nodejs_textbook.* to `nodejs_textbook`@`localhost` ;
$express learn-sequelize -views=pug $ cd learn-sequelize/ $ npm i $npm i sequelize mysql2 $npm i -g sequelize-cli $sequelize init
시퀄 라이즈(Sequelize)란 무엇일까요? 시퀄 라이즈는 DB 작업을 쉽게 할 수 있도록 도와주는 ORM 라이브러리입니다.
ORM이란 무엇일까요? ORM(Object-Relational Mapping)에 약자입니다.
즉, ORM은 자바스크립트 객체와 관계형 데이터베이스를 서로 연결해주는 도구입니다.
- 설치
sequelize와 sequelize-cli 그리고 mysql2를 설치해주세요. (저는 MySQL 데이터베이스에서 사용을 해봤습니다.)
npm install sequelize sequelize-cli mysql2
sequelize-cli는 시퀄라이즈 명령어를 실행하기 위한 패키지 라이브러리입니다. Global 설치해도 상관이 없습니다. (저는 글로벌 설치를 통해 로컬 안에서 프로젝트마다 사용했습니다.)
mysql2는 MySQL과 연결해주는 드라이버입니다.
설치를 완료 후 sequelize init 명령어를 실행합니다.
sequelize init
해당 명령어를 실행하면 아래와 같이 디렉터리와 파일이 생성이 됩니다.
백앤드(Back-End)/Node.JS
[Node.js] Sequelize 개념 및 설치
https://any-ting.tistory.com/49
7-2. 워크벤치 소개와 시퀄라이즈로 데이터베이스 만들기
- Model 생성
models/Users.js
module.exports = (sequelize, DataTypes) => { return sequelize.define('user', { }); }
module.exports = (sequelize, DataTypes) => { const Users = sequelize.define("Users", { id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, comment: "고유번호 UUID", }, email: { type: DataTypes.STRING(100), validate: { isEmail: true, }, comment: "이메일", }, password: { type: DataTypes.STRING(60), comment: "비밀번호", }, name: { type: DataTypes.STRING(100), comment: "이름", }, phone: { type: DataTypes.STRING(72), comment: "전화번호", }, }, { charset: "utf8", // 한국어 설정 collate: "utf8_general_ci", // 한국어 설정 tableName: "Users", // 테이블 이름 timestamps: true, // createAt & updateAt 활성화 paranoid: true, // timestamps 가 활성화 되어야 사용 가능 > deleteAt 옵션 on }); return Users; };
댓글 ( 4)
댓글 남기기