인프런 커뮤니티 질문&답변

Seonjin Son님의 프로필 이미지
Seonjin Son

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

NodeBird-API 프로젝트 세팅하기

Error질문입니다.!

작성

·

510

0

안녕하세요.

routes/index.js에서

const express = require('express');
const { User, Domain } = require('../models');

const router = express.Router();

router.get('/', (req, res, next) => {
  User.find({
    where: { id: req.user && req.user.id },
    include: { model: Domain },
  })
    .then((user) => {
      res.render('login', {
        user,
        loginError: req.flash('loginError'),
        domains: user && user.domains,
      });
    })
    .catch((error) => {
      console.error(error);
      next(error);
    });
});

module.exports = router;

이와 같이 해주었고,

models/index.js

db.User = require('./user')(sequelize, Sequelize);

이렇게 해주었는데 아래와 같은 에러가 납니다.

GET / 500 15.796 ms - 2992

TypeError: User.find is not a function

이유를 못찾겠어요 ㅜㅜ 도와주세요ㅜㅜ

답변 4

2

User.findOne 으로 고쳐 보세요!! 

0

Seonjin Son님의 프로필 이미지
Seonjin Son
질문자

sequelize 버전 문제였습니다.... ㅜㅜ

5.x.x대로 깔려버리는 바람에....에러가 났네요...

0

Seonjin Son님의 프로필 이미지
Seonjin Son
질문자

models/user.js

module.exports = (sequelize, DataTypes) => (

sequelize.define('user', {

email: {

type: DataTypes.STRING(40),

allowNull: false,

unique: true,

},

nickname: {

type: DataTypes.STRING(15),

allowNull: false,

},

password: {

type: DataTypes.STRING(100),

allowNull: true,

},

provider: {

type: DataTypes.STRING(10),

allowNull: false,

defaultValue: 'local',

},

snsId: {

type: DataTypes.STRING(30),

allowNull: true,

},

}, {

timestamps: true,

paranoid: true,

charset: 'utf8',

collate: 'utf8_general_ci',

})

);

model/index.js

db.User = require('./user')(sequelize, Sequelize);

이렇게 하였습니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

./model/users.js에서 return sequelize.define 되어있나요?

또는 ./model/index.js에서 db.User = require('./user')(sequelize, Sequelize) 되어있나요?

Seonjin Son님의 프로필 이미지
Seonjin Son

작성한 질문수

질문하기