목록공부 (179)
저장을 습관화
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/X795c/btso5Xlfowm/TBnKgJWArPqrsq2RJQCktK/img.png)
class 붕어빵 { 내용물; 가격 = 500; constructor(내용물, 가격) { this.내용물 = 내용물; if (가격) this.가격 = 가격; } 할인() { this.가격 = this.가격 * 0.8; } } const 붕어빵1 = new 붕어빵("팥"); console.log(붕어빵1); // 붕어빵 { '내용물': '팥', '가격': 500 } const 붕어빵2 = new 붕어빵("슈크림", 1000); 붕어빵2.할인(); console.log(붕어빵2); // 붕어빵 { '내용물': '슈크림', '가격': 800 }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mwgQD/btsoXxUTm3k/8SNyYw5vFAwNz6KL0kfLCk/img.png)
- 데이터 타입 enum enum이란 특정 값들 중 하나를 선택할 수 있는 타입임 회원가입할때 성별이나 태어난 년도 선택하는 셀렉트 박스를 만들때 쓰임 npx seuqelize model:generate 명령문 이용해서 테이블 만들때 데이터 타입 enum 사용하는 방법 대부분의 다른 타입들처럼 컬럼명:타입명 이 아니라 '컬럼명:enum:{option1,option2,option3}' 이렇게 해줘야함 예시) npx sequelize model:generate --name item --attributes name:string,option_id:integer,price:integer,'type:enum:{coffee,juice,food}',amount:integer 위 명령어를 입력하면 migrations와 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/en8gU0/btsnwQ2KYwY/4KOFeLyT2d8K1FWu2i3vKK/img.png)
- 증상 ...(중략)... const { postId } = req.params; const { userId } = res.locals.user ...(중략)... await this.likeService.addLike(postId, userId); 사용자 로그인한 후 Likes 테이블에 좋아요에 관한 데이터를 저장하려는 중 발생한 에러 sequelizeForeignKeyConstraintError 외래키 제약 조건 에러 에러 로그 외래키 제약 조건 때문에 전달인자로 받아온 userId를 Likes테이블의 UserId에 넣지 못한다고 나옴 Executing (default): INSERT INTO `Likes` (`likeId`,`UserId`,`PostId`,`createdAt`,`updatedAt`..
메모 작업 환경 Windows 10, VSC, sequelize, MySQL, AWS 계층형 아키텍처 패턴 적용하기 - 계층형 아키텍처 패턴 계층을 분리해서 관리하는 아키텍처 패턴이고, 현재 가장 흔하게 사용되고 있는 아키텍처 패턴 중 하나이다(사실상 표준) 관련 자료가 많이 나와있기 때문에 어떤 아키텍쳐 패턴을 도입해야할지 확인이 없을때 좋은 선택지가 될 수 있다 어떤 경우든 계층을 분리해서 유지하고, 각 계층이 자신의 바로 아래 계층에만 의존하게 만드는 것이 목표이다 - 컨트롤러 클라이언트의 요청을 처리한 후 서버에서 처리된 결과를 반환해주는 역할 1) 클라이언트의 요청(request)을 수신 2) 요청(request)에 들어온 데이터 및 내용을 검증 3) 서버에서 수행된 결과를 클라이언트에게 반환(..
- sequelize로 MySQL 다룰때 데이터 생성한다고 반드시 router.post 써야하는거 아니고 삭제한다고 반드시 router.delete 써야하는것도 아니고 수정한다고 반드시 router.put 써야하는것도 아니다 router.put 안에서도 Table.create, Table.destory 잘만 작동하더라.. - sequelize .increment(), .decrement() MySQL 기준 테이블에 데이터 타입이 integer 등 숫자로 지정된 데이터의 값을 증가하거나 감소시킬때 쓰는 메소드 더하기 빼기 ※ 적용하기 전에 적용하려는 데이터의 컬럼의 기본값이 null이면 값의 증감이 안됨 자바스크립트에서는 null + 1은 1이고, 결과의 데이터 타입도 number가 되지만 MySQL에서는..
- 증상 C:\(생략)LV.4\node_modules\express\lib\router\index.js:469 throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn)) ^ TypeError: Router.use() requires a middleware function but got a Object at Function.use (C:\(생략)LV.4\node_modules\express\lib\router\index.js:469:13) at Function. (C:\(생략)LV.4\node_modules\express\lib\application.js:227:21) at Array.forEach (..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Vdclj/btsmP7cuisG/QmEAespDMz1s5xyskieWS1/img.png)
메모 작업 환경 Windows 10, VSC, sequelize, MySQL, AWS mysql-sequelize 초기 환경 구성 0. npm 시작 $ npm init -y 1. 필요한 라이브러리 설치 1-1. express, sequelize, mysql2 라이브러리 설치 $ npm install express sequelize mysql2 cookie-parser jsonwebtoken 1-2. sequelize-cli, nodemon 라이브러리를 DevDependency로 설치 sequelize-cli는 sequelize 명령어를 터미널에서 직접 실행할 수 있게 해주는 도구이다 $ npm install -D sequelize-cli nodemon 1-3. 설치한 sequelize를 초기화 하여, s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/phCGf/btsmN5maqDc/f3wf8KYVCPv6VsExxGQpm1/img.png)
메모 작업 환경 Windows 10, VSC, sequelize, MySQL, AWS mysql-sequelize 초기 환경 구성 0. npm 시작 $ npm init -y 1. 필요한 라이브러리 설치 1-1. express, sequelize, mysql2 라이브러리 설치 $ npm install express sequelize mysql2 1-2. sequelize-cli, nodemon 라이브러리를 DevDependency로 설치 sequelize-cli는 sequelize 명령어를 터미널에서 직접 실행할 수 있게 해주는 도구이다 $ npm install -D sequelize-cli nodemon 1-3. 설치한 sequelize를 초기화 하여, sequelize를 사용할 수 있는 구조를 생성합니..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FysPD/btsmIRNQpt7/EKKvn4Cojr7jqYygLz6BOk/img.png)
작업환경 AWS, MySQL, sequelize, VSC 보통 DB를 삭제할때는 아래 명령어를 씀 $ npx sequelize db:drop 그럼 sequelize가 /config/config.json에서 현재 데이터 베이스 이름을 확인하고, 해당 DB를 drop(삭제)함 그런데 아직 config.json이 없는 상태에서 DB를 삭제하고 싶거나, 현재 작업 중인 프로젝트의 DB가 아닌 다른 프로젝트의 DB를 삭제하고 싶을때 config.json에서 DB이름만 수정하고 db:drop하면 되지만 이 수정하는 과정이 귀찮다면 명령어 양식 npx sequelize-cli db:drop --url mysql://username:password@host:port/database username과 password는 ..
https://github.com/jeongho218/practice_for_sequelize_transaction_230706.git GitHub - jeongho218/practice_for_sequelize_transaction_230706 Contribute to jeongho218/practice_for_sequelize_transaction_230706 development by creating an account on GitHub. github.com sequelize db 작업 0. 기존 DB 삭제 $ npx sequelize db:drop DB의 모든 테이블과 데이터가 삭제된다.(DB를 초기 상태로 되돌린다.) 백업 필수! 1. config.json 설정 확인 "username", "pa..