inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

시퀄라이즈 질문드립니다..

253

smathj

작성한 질문수 14

0

안녕하세요 강사님

 

ch7에 해당하는

Sequelize 실습에서

hasMany - belongsTo 를 테이블 이름에 칼럼 만바꿔서 테스트를해보니

다음과 같은 에러가 계속 발생하였습니다.

 

강의에서 users ----------- comments 관계처럼

                  kakao ------------ talk 로 같은 관계로 테스트하였습니다.

 

1. kakao.js

const Sequelize = require('sequelize');

module.exports = class Kakao extends Sequelize.Model {
    static init(sequelize) {
        return super.init({
            name : {
                type : Sequelize.STRING(20),
                allowNull : false,
                unique : true,
            },
            job : {
                type : Sequelize.STRING(30),
                allowNull : true,
            },
            sex : {
                type : Sequelize.STRING(2), // 남자,여자
                allowNull : false,
            },
            created_at : {
                type : Sequelize.DATE,
                allowNull : false,
                defaultValue : Sequelize.NOW,
            },
        },{
            sequelize,
            timestamps : false, // 강제로 createAt,updatedAt 칼럼 만들지 말아줘
            undescored : false, // 스네이크 케이스로 사용할꺼야
            modelName : 'Kakao',
            tableName : 'kakao',
            paranoid: false,
            charset: 'utf8',
            collate: 'utf8_general_ci',
        });
    }

    static associate(db) {
        db.Kakao.hasMany(db.Talk, { foreignKey: 'nicName', sourceKey: 'id' });
    }
};

 

2.talk.js

const Sequelize = require('sequelize');

module.exports = class Talk extends Sequelize.Model {
    static init(sequelize) {
        return super.init({
            talk : {
                type : Sequelize.STRING(100),
                allowNull : true,
            },
            created_at : {
                type : Sequelize.DATE,
                allowNull : false,
                defaultValue : Sequelize.NOW,
            },
        },{
            sequelize,
            timestamps: false,
            modelName : 'Talk',
            tableName : 'talk',
            paranoid: false,
            charset: 'utf8mb4',
            collate: 'utf8mb4_general_ci',
        });
    }
   
    static associate(db) {
        db.Talk.belongsTo(db.Kakao, { foreignKey: 'nicName', targetKey: 'id' });
    }
};

 

3. index.js

const Sequelize = require('sequelize');
const Kakao = require('./kakao');
const Talk = require('./talk');

// NODE_ENV가 정의되지않으면 개발모드!
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};

//                                  DB                  ID            PWD          Config_File
const sequelize = new Sequelize(config.database, config.username, config.password, config);

db.sequelize = sequelize;

db.Kakao = Kakao;
db.Talk = Talk;

console.log(sequelize);

Kakao.init(sequelize);
Talk.init(sequelize);

Kakao.associate(sequelize);
Talk.associate(sequelize);


module.exports = db;

 

어떤차이가 있는걸까요..?

저는 

db.Kakao.hasMany(db.Talk, { foreignKey: 'nicName', sourceKey: 'id' });

 

 db.Talk.belongsTo(db.Kakao, { foreignKey: 'nicName', targetKey: 'id' });

이두줄을 kakao는 테이블의 고유한 pk가 talk테이블에 많다.(칼럼으로서는 id)

즉 talk 테이블에서 nicName이라는 칼럼을  foreignkey으로 사용하겠다.(kakao의 id를 가지고서)

라고 생각했습니다.

 

 

 

 

sequelize mongodb nodejs mysql Sequelize

답변 1

0

제로초(조현영)

오타입니다.

Kakao.associate(db)

Talk.associate(db);

0

smathj

강사님 감사합니다

..이런 실수를 문의해서 죄송합니다 

다음에는 좀더 확인하고 문의하겠습니다.

리눅스 노드 설치시 패키지

0

172

0

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

0

926

3

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

0

2297

2

a[title] 질문드립니다

0

386

1

리뉴얼 강의 및 공부 방법

0

589

1

jwt decode

0

1136

1

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

0

396

1

passport와 jwt

0

438

1

리뉴얼 강의

0

427

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

3542

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

244

1

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

0

428

1

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

0

303

1

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

0

292

1

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

0

373

1

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

0

455

1

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

0

510

2

res.setHeader vs res.cookie

0

1797

3