코딩 공부/공부 16

Sequelize N : M (다대다)관계에 대한 고찰

diary : hashtag = N : M 일때 처음에는 await diary.create() await diary_hashtag.create() await hashtag.create() 로 각각 3개의 테이블에 데이터를 만들어 줬는데 belongsToMany로 관계설정을 해줬으니까 각각 안만들어줘도 똑똑한 sequelize가 join table은 자동 생성해줄거라고 생각했다 또한 위에처럼 각각 만들어줬을때 diary를 삭제하면 연관되는 diary_hashtag테이블의 칼럼이 삭제되고 또한 hashtag를 삭제했을때도 연관되는 diary_hashtag테이블의 칼럼이 삭제는 되지만 더 나아가서 diary 삭제시 diary_hashtag테이블이 삭제되고 diary_hashtag테이블을 참조하는 hashtag..

Sequelize 관계 설정 1 : N, N : M(1대다, 다대다)

trip : diary = 1 : N diart : hashtag = N : M 인 경우의 관계 설정 관계 설정방법은 2가지가 있다 마이그레이션과 모델 모두 이용하는 방법과 마이그레이션을 하지않고 모델만 이용하는 방법이 있는데 마이그레이션을 이용하는 방법으로 하겠다 1 : N 우선 trip, diary, hashtag의 migration과 model파일들을 다 만든 상황에서 일반적으로 migration 파일을 만들때 npx sequelize-cli model:generate --name user --attributes name:string 처럼 만드는데 이렇게 말고 npx sequelize-cli migration:generate --name fk-diary 이런식으로 model이 생성되지 않고 migr..

Sequelize와 Migration 기본 설정

Migration을 하면 데이터베이스에 테이블 생성 및 삭제할것을 미리 선언해두는것이고 Seed는 그 테이블에 더미데이터를 집어 넣는거 공식문서 : https://sequelize.org/docs/v6/other-topics/migrations/ Migrations | Sequelize Just like you use version control systems such as Git to manage changes in your source code, you can use migrations to keep track of changes to the database. With migrations you can transfer your existing database into another state and ..

JS로 slack bot 사용하기 (invalid_auth 에러 해결 법)

await slack.slack("제목"); await slack.slack("내용"); 서버에 요청이 갈때마다 해당 요청정보를 slack 채널에 bot이 메시지를 보내는것을 구현하고자 함 우선 새 워크스페이스를 개설한다 https://slack.com/ Slack은 미래의 업무가 이루어지는 곳입니다 Slack은 여러분의 팀과 소통할 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 에 접속하여 새 워크스페이스 개설을 누르고 워크스페이스를 생성한다 그 후에 새 app을 만든다 https://api.slack.com/apps Slack API: Applications | Slack Your Apps Don't see an app you're looking for? ..

포스트맨 자동화

포스트맨에서 엔드포인트 별로 만들어놓은 요청들의 테스트케이스를 만들어서 한번에 성공여부를 볼 수 있다 위 이미지처럼 탭을 많이 열어놨을때 각각의 요청에서 Tests탭을 들어간다 그리고 아래 코드 예시처럼 어떤 상태코드를 띄워야 성공인지, key값이 뭐가 와야 성공인지등을 지정해 줄 수 있다 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Response must have the token property", function () { var jsonData = pm.response.json(); pm.expect(jsonData).to.have.keys("data","accessToken"); ..

정규표현식 (Regular Expression: Regex)

형식 /pattern/flag //예시 문자열 let str = "안녕하세요 안녕 제 전화번호는 010-1234-5678입니다 G gd god good goood!."; 패턴 의미 비고 [a-z] [A-Z] 알파벳 범위 [ㄱ-ㅎ] [가-힣] 한글 범위 0-9 숫자 범위 . 모든 문자열 (공백 포함, 줄바꿈은 x) 1개당 문자열한개. ...은 3자리의 문자열 \d 숫자 str.match(/\d/) === '0' \D 숫자 아닌거 \w 알파벳, 숫자, _ 영문 대소문자 52개 + 숫자 10개 + _ 1개 =63개 문자 \W \w 제외 \s 공백 \S 공백 아닌것 ^ 줄의 시작에서 일치 e.g. /^abc/ 시작 포함돼야함 [^] 부정(not) $ 줄의 끝에서 일치 e.g. /abc$/ 끝 포함돼야함 /goo..