• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

Error질문입니다.!

19.03.19 16:31 작성 조회수 428

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

D_One님의 프로필

D_One

2019.08.12

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

0

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

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

0

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) 되어있나요?