Cannot read properties of undefined (reading 'Op') 문제를 도와주시면 감사하겠습니다
선생님 안녕하세요
선생님의 sns 예제 코드에서 app.js에서 아래의 소스코드를 추가해봤습니다
그런데, 구글링을 해봤는데도 에러가 해결이 안되어서 가르쳐주시면 정말 감사하겠습니다
app.js 소스코드입니다
const express = require('express');
const cookieParser = require('cookie-parser');
const morgan = require('morgan');
const path = require('path');
const session = require('express-session');
const nunjucks = require('nunjucks');
const dotenv = require('dotenv');
const passport = require('passport');
dotenv.config();
const pageRouter = require('./routes/page');
const authRouter = require('./routes/auth');
const postRouter = require('./routes/post');
const userRouter = require('./routes/user');
const { sequelize } = require('./models');
const { User,Sequelize:{Op} } = require('./models');
const passportConfig = require('./passport');
const app = express();
passportConfig(); // 패스포트 설정
app.set('port', process.env.PORT || 8001);
app.set('view engine', 'html');
nunjucks.configure('views', {
express: app,
watch: true,
});
sequelize.sync({ force: false })
.then(() => {
console.log('데이터베이스 연결 성공');
})
.catch((err) => {
console.error(err);
});
app.use(morgan('dev'));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/img', express.static(path.join(__dirname, 'uploads')));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: false,
},
}));
app.use(passport.initialize());
app.use(passport.session());
app.use('/', pageRouter);
app.use('/auth', authRouter);
app.use('/post', postRouter);
app.use('/user', userRouter);
User.find({
attribute: ['email', 'nick'],
where: {id: {[Op.in]: [1,2]}}
}).then((data)=>{
console.log(JSON.stringify(data))
});
app.use((req, res, next) => {
const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`);
error.status = 404;
next(error);
});
app.use((err, req, res, next) => {
res.locals.message = err.message;
res.locals.error = process.env.NODE_ENV !== 'production' ? err : {};
res.status(err.status || 500);
res.render('error');
});
app.listen(app.get('port'), () => {
console.log(app.get('port'), '번 포트에서 대기중');
});
user.js 소스코드입니다
const Sequelize = require('sequelize');
module.exports = class User extends Sequelize.Model {
static init(sequelize) {
return super.init({
email: {
type: Sequelize.STRING(40),
allowNull: true,
unique: true,
},
nick: {
type: Sequelize.STRING(15),
allowNull: false,
},
password: {
type: Sequelize.STRING(100),
allowNull: true,
},
provider: {
type: Sequelize.STRING(10),
allowNull: false,
defaultValue: 'local',
},
snsId: {
type: Sequelize.STRING(30),
allowNull: true,
},
}, {
sequelize,
timestamps: true,
underscored: false,
modelName: 'User',
tableName: 'users',
paranoid: false,
charset: 'utf8',
collate: 'utf8_general_ci',
});
}
static associate(db) {
db.User.hasMany(db.Post);
db.User.belongsToMany(db.User, {
foreignKey: 'followingId',
as: 'Followers',
through: 'Follow',
});
db.User.belongsToMany(db.User, {
foreignKey: 'followerId',
as: 'Followings',
through: 'Follow',
});
}
};
index.js 소스코드입니다
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const User = require('./user');
const Post = require('./post');
const Hashtag = require('./hashtag');
const db = {};
const sequelize = new Sequelize(
config.database, config.username, config.password, config,
);
db.sequelize = sequelize;
db.User = User;
db.Post = Post;
db.Hashtag = Hashtag;
User.init(sequelize);
Post.init(sequelize);
Hashtag.init(sequelize);
User.associate(db);
Post.associate(db);
Hashtag.associate(db);
module.exports = db;
읽어주셔서 감사합니다
답변 1
0
models/index.js에서
db.Sequelize = Sequelize 안하셨네요.
0
답변해주셔서 감사합니다
강좌에서
https://www.inflearn.com/course/%EB%85%B8%EB%93%9C-%EA%B5%90%EA%B3%BC%EC%84%9C/lecture/56921?tab=curriculum&volume=1.00
index.js에서
db.Sequelize = Sequelize 는 필요 없다고 말씀해주셔서 안적었는데,
혹시 index.js에서 db.Sequelize = Sequelize 을 안적고
app.js에서 Op.in을 사용하는 방법도 있는지도 질문드리고 싶습니다
강좌를 다시 찾아서 들었는데 다른 파일에서 require('sequelize') 하면 된다는 말씀으로 이해해서요
app.js에서
const Sequelize = require('sequelize'); 를 적어봤는데도 해결이 안되는 것 같습니다
가르쳐주시면 정말 감사하겠습니다
리눅스 노드 설치시 패키지
0
172
0
socket.js 에서 referer로부터 roomId를 가져올 때
0
932
3
스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문
0
2297
2
a[title] 질문드립니다
0
388
1
리뉴얼 강의 및 공부 방법
0
590
1
jwt decode
0
1138
1
node.js 교과서 3판 질문드립니다
0
398
1
passport와 jwt
0
439
1
리뉴얼 강의
0
428
2
혹시 Node.js 교과서 3판 이북은 언제 나오나요?
0
359
1
몽고디비 사용자도 MYSQL부분을 들어야 하나요???
0
491
1
sql 쿼리 로그는 어떤 모듈이 작성하나요?
0
512
2
nunjucks res.render('error'); 작동을 안합니다.
0
520
1
질문있습니다.
0
349
1
multer 한글 파일 업로드시 파일명이 깨져요.
1
3545
1
수업자료는 어디있나요?
0
374
1
질문 있습니디
0
245
1
multer 사용시 file 외 name값은 못받나용?
0
431
1
코드 중복 부분 질문드립니다.
0
303
1
api 만드는 이유 질문드립니다.
0
293
1
Strategy의 done에 대해 질문드립니다.
0
374
1
안녕하세요 fs 권한 관련 질문드립니다
0
456
1
시퀄라이즈 연결질문...
0
511
2
res.setHeader vs res.cookie
0
1799
3





