inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

5-8.실제 회원가입과 미들웨어들

db에서 through로 설장한 table이 생성이 안됩니다.

해결된 질문

254

stefan CHO

작성한 질문수 37

0

through된 부분도 강의 12:10에 보면 테이블로 만들어져 있는데 저는 그게 없는데 원인을 뭘로 볼 수 있을까요?

(follow, like, posthashtag이런게 없습니다. 딱 js로 만든 다섯개만 테이블로 나와요)

User.js 코드

module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
"User",
{
nickname: {
type: DataTypes.STRING(20),
allowNull: false,
},
userId: {
type: DataTypes.STRING(20),
allowNull: false,
unique: true,
},
password: {
type: DataTypes.STRING(100),
allowNull: false,
},
},
{
charset: "utf8",
collate: "utf8_general_ci", // can use Korean
}
);
User.associate = (db) => {
db.User.hasMany(db.Post, { as: "Posts" });
db.User.hasMany(db.Comment);
db.User.belongsToMany(db.Post, { through: "Like", as: "Liked" });
db.User.belongsToMany(db.User, { through: "Follow", as: "Followers" });
db.User.belongsToMany(db.User, { through: "Follow", as: "Followings" });
};
return User;
};

Post.js 코드

module.exports = (sequelize, DataTypes) => {
const Post = sequelize.define(
"Post",
{
content: {
type: DataTypes.TEXT,
allowNull: false,
},
},
{
charset: "utf8mb4",
collate: "utf8mb4_general_ci", // can use Korean
}
);
Post.associate = (db) => {
db.Post.belongsTo(db.User);
db.Post.belongsToMany(db.User, { through: "Like", as: "Likers" });
db.Post.belongsTo(db.Post, { as: "Retweet" });
db.Post.hasMany(db.Comment);
db.Post.hasMany(db.Image);
db.Post.belongsToMany(db.Hashtag, { through: "PostHashtag" });
};
return Post;
};

index.js 코드

const Sequelize = require("sequelize");
const env = process.env.NODE_ENV || "development";
const config = require("../config/config")[env];
const db = {};

const sequelize = new Sequelize(
config.database,
config.username,
config.password,
config
);

Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});

db.Comment = require("./comment")(sequelize, Sequelize);
db.Hashtag = require("./hashtag")(sequelize, Sequelize);
db.Image = require("./image")(sequelize, Sequelize);
db.Post = require("./post")(sequelize, Sequelize);
db.User = require("./user")(sequelize, Sequelize);

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

javascript react

답변 2

1

제로초(조현영)

Objec.keys(db).forEach 코드를 db.User = require('./user') 아래로 내리세요.

0

stefan CHO

되네요 감사합니다

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

482

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

447

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

433

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

975

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1