inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

시퀄라이즈 실습하기

복습하고있습니다.

212

hi-ster

작성한 질문수 20

0

복습하고 있습니다.
static associate(db) {
    db.User.hasMany(db.Comment, { foreignKey: 'commenter', sourceKey: 'id' });
}
 
static associate(db) {
    Comment.belongsTo(db.User,{ foreignkey:'commenter' , targetKey:'id' });
}
 
로 연결이 되었는데
 const comments = await Comment.findAll({
      include: {
        model: User,
        where: { id: req.params.id },
      },
  });
SELECT `Comment`.`id`, `Comment`.`comment`, `Comment`.`created_at`, `Comment`.`commenter`, `Comment`.`UserId`, `User`.`id` AS `User.id`, `User`.`name` AS `User.name`, `User`.`age` AS `User.age`, `User`.`married` AS `User.married`, `User`.`comment` AS `User.comment` FROM `comments` AS `Comment` INNER JOIN `users` AS `User` ON `Comment`.`UserId` = `User`.`id` AND `User`.`id` = '1';
 
comment.UserId로 가르키고 있는데 이게 commenter이 되야하는거 아닌가요? 이부분은 어디서 수정해야하는지 궁금합니다.
 
그리고 하나더 궁금한게
삭제나 이런것들 할때 임의로 날려서 남에 게시글 삭제하면 안되니 실무에서 매번 login id랑 글쓴 id랑 체크해서 확인하고 삭제처리되게 하나요? 아니면 더좋은 방법이 있나요?
 

mongodb nodejs mysql Sequelize

답변 1

0

제로초(조현영)

저 부분은 코드로는 수정이 힘들고 테이블을 직접 수정하셔야 합니다. 워크벤치나 SQL을 통해서요.

네 로그인 아이디는 매번 체크하시는 게 좋습니다.

0

h2844j

1111

0

hi-ster

저부분 워크벤치에서 어떤식으로 수정을 해야하나요??

0

제로초(조현영)

commenter와 UserId가 동시에 존재하니까 UserId 컬럼을 제거하시면 될 것 같습니다.

0

hi-ster

지금 필드에 userid컬럼 없는상태입니다. 저렇게 애러가나서 봐봤더니 commenter로 연결이 되어야하는데 쿼리문이 저렇게 날라가서 애러상태가 되어서 제대로 결과값이 안나옵니다.

두개가 있는상태가 아닙니다.

0

제로초(조현영)

associate 안에서 Comment.belongsTo가 아니라

db.Comment로 수정해보세요.

0

hi-ster

 static associate(db) {
    db.Comment.belongsTo(db.User,{ foreignkey:'commenter' , targetKey:'id' });
}


sql: "SELECT `Comment`.`id`, `Comment`.`comment`, `Comment`.`created_at`, `Comment`.`commenter`, `Comment`.`UserId`, `User`.`id` AS `User.id`, `User`.`name` AS `User.name`, `User`.`age` AS `User.age`, `User`.`married` AS `User.married`, `User`.`comment` AS `User.comment` FROM `comments` AS `Comment` INNER JOIN `users` AS `User` ON `Comment`.`UserId` = `User`.`id` AND `User`.`id` = '1';",

수정해도 같게나오고있습니다.

0

제로초(조현영)

Comment랑 User는 제 강좌랑 똑같나요?

0

제로초(조현영)

근데 그 이전에, 테이블은 시퀄라이즈 쓰기 전에 sql로 만드신 걸로 하신거죠?

0

제로초(조현영)

https://github.com/ZeroCho/nodejs-book/blob/master/ch7/7.6/learn-sequelize/models/index.js

이것도 똑같구요?

0

hi-ster

static associate(db) {
    db.Comment.belongsTo(db.User,{ foreignkey:'commenter' , targetKey:'id' });
    db.Comment.belongsTo(db.User, { foreignKey: 'commenter', targetKey: 'id' });
}

이유를 찾은거같습니다.

foreignkey 쓸때 K대문자로 안하면 인식못하나요? ㄷ.ㄷ;;

아래로 하면 정상작동되고 위에껄로하니까 userId를 잡는거같네요!

0

제로초(조현영)

아.. 그렇습니다. 프로그래밍 언어는 대소문자 철저히 지키셔야 합니다.

리눅스 노드 설치시 패키지

0

172

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

926

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2297

2

a[title] 질문드립니다

0

386

1

리뉴얼 강의 및 공부 방법

0

589

1

jwt decode

0

1137

1

node.js 교과서 3판 질문드립니다

0

396

1

passport와 jwt

0

438

1

리뉴얼 강의

0

428

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

359

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

488

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

511

2

nunjucks res.render('error'); 작동을 안합니다.

0

518

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3543

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

244

1

multer 사용시 file 외 name값은 못받나용?

0

429

1

코드 중복 부분 질문드립니다.

0

303

1

api 만드는 이유 질문드립니다.

0

292

1

Strategy의 done에 대해 질문드립니다.

0

373

1

안녕하세요 fs 권한 관련 질문드립니다

0

456

1

시퀄라이즈 연결질문...

0

510

2

res.setHeader vs res.cookie

0

1797

3