inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요. !! 제로초님 개인 프로젝트 만들고 있는데요.

580

송지훈

작성한 질문수 28

0

여기서 왜 addCategorys가 존재하지 않는 함수라고 하는지 알 수 있을까요??

addCategory라고 했을때도 똑같아용.

express react redux nodejs Next.js

답변 10

1

제로초(조현영)

쿼리를 세 번 날려서 좋지 않을 것 같습니다. findOrCreate할 때 이미 return값에 Category 정보(아이디까지)가 들어있어서 다시 findOne할 필요는 없습니다.

0

송지훈

modelName: 'User',
tableName: 'users',
modelName: 'Category',
tableName: 'categorys',
되어있습니당.
일단은 add메서드 안쓰고 진행하는데 문제는 없는 프로젝트라
add가 필요한 상황에서는 말씀하신대로 진행해야 겟네요.
고마워요.!!

0

제로초(조현영)

db.Post.belongsTo(db.Category, { as: 'Category' }) 이렇게 쓰는 임시방편이 있을 수 있겠습니다.

User랑 Category 모델들의 ModelName, tableName은 제대로 되어있죠?

0

송지훈

model/post.js
const DataTypes = require('sequelize');
const { Model } = DataTypes;

module.exports = class Post extends Model {
  static init(sequelize) {
    return super.init(
      {
        title: {
          type: DataTypes.STRING(10),
          allowNull: false,
        },
        content: {
          type: DataTypes.TEXT,
          allowNull: false,
        },
      },
      {
        modelName: 'Post',
        tableName: 'posts',
        charset: 'utf8mb4',
        collate: 'utf8mb4_general_ci',
        sequelize,
      },
    );
  }
  static associate(db) {
    db.Post.belongsTo(db.User);
    db.Post.belongsTo(db.Category);
  }
};
model/index.js
const Sequelize = require('sequelize');
const category = require('./category');
const post = require('./post');
const user = require('./user');

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,
);

db.Category = category;
db.Post = post;
db.User = user;

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

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

module.exports = db;
router/post.js
const { PostCategoryUser } = require('../models');
이렇게 하였습니다.

0

제로초(조현영)

혹시 Post의 associate 부분이 models/index에서 호출되었나요?

0

송지훈

 await newPost.addUser(req.user.id);
이렇게 해보았는데 이것도 마찬가지로 is not a function 이라고 나와용.
죄송합니다. 감사합니다. ㅠㅠ

0

제로초(조현영)

아, 생각해보니 post는 하나의 category에만 속해서 addCategory가 맞습니다. addCategory가 없다면 addUser도 없는지 한 번 확인해보세요.

0

송지훈

제로초님 죄송한데

addCategories도 안되는데 이건 무슨 현상일까요?

0

송지훈

await Category.findOrCreate({
      where: { name: category },
    });

    const findCategory = await Category.findOne({
      where: { name: category },
    });

    const newPost = await Post.create({
      title,
      content,
      UserId: req.user.id,
      CategoryId: findCategory.id,
   });
아 복수형이 자동 적용 되는군요. 정말 감사합니다.
일단 이렇게 했는데
이런 코드는 안티패턴인가요??

0

제로초(조현영)

addCategories일 것 같습니다.

넥스트 버젼 질문

0

77

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

174

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

372

1

sudo certbot --nginx 에러

0

1274

2

Minified React error 콘솔에러 (hydrate)

0

469

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

326

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

381

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

287

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

237

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1