posts.js 라우터 파일에 문제가 생겼습니다
const express = require('express');
const { User, Post, Image, Comment } = require('../models');
const router = express.Router();
console.log(Post); // undefined
router.get('/', async (req, res, next) => {
try {
const posts = await Post.findAll({
limit: 10,
order: [
['createdAt', 'DESC'],
[Comment, 'createdAt', 'DESC'],
],
include: [{
model: User,
attributes: ['id', 'nickname'],
}, {
model: Image,
}, {
model: Comment,
include: [{
model: User,
attributes: ['id', 'nickname'],
}],
}, {
model: User,
as: 'Likers',
attributes: ['id'],
}],
});
res.status(200).json(posts);
} catch (error) {
console.error(error);
next(error);
}
});
module.exports = router;posts.js
const express = require('express');
const cors = require('cors');
const passport = require('passport');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const dotenv = require('dotenv');
const morgan = require('morgan');
const db = require('./models');
const passportConfig = require('./passport');
const postRouter = require('./routes/post');
const userRouter = require('./routes/user');
const postsRouter = require('./routes/posts');
dotenv.config();
db.sequelize.sync()
.then(() => {
console.log('db 연결 성공');
})
.catch(console.error);
passportConfig();
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors({
origin: true,
credentials: true,
}));
app.use(cookieParser(process.env.COOKIE_SECRET));
app.use(session({
saveUninitialized: false,
resave: false,
secret: process.env.COOKIE_SECRET,
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(morgan('dev'));
app.use('/posts', postsRouter);
app.use('/post', postRouter);
app.use('/user', userRouter);
app.listen(3065, () => {
console.log('3065포트 서버실행중');
});app.js
(node:4192) Warning: Accessing non-existent property 'User' of module exports inside circular dependency
(node:4192) Warning: Accessing non-existent property 'Post' of module exports inside circular dependency
// 생략영상보면서 코딩중에
위 문구와 함께 ../models에서 require한 것이
존재하지 않는 문제가 발생했습니다.
const { Post } = require('../models')
console.log(Post) 출력결과 undefined 입니다
이 문제가 posts.js 파일에서만 발생했습니다.
(user.js, post.js는 정상)
그래서 postss.js 라는 이름이 다르고 코드만 옮긴 파일을 만들어서 다시 시도해보았습니다.
(rename시 module not found 에러 발생)
그랬더니 ../models에서 require 한것이 존재했습니다.
근데 요청시
라우터(method: get, url: /posts)의 미들웨어가 실행이 안되는 문제가 있었습니다.
상태코드는 300 Multiple Choices 였습니다
이번에는 url를 바꿔서 요청을 보냈습니다
ex) /posts/test
그랬더니 성공했습니다.
왜 이런 현상이 발생했는지
어떻게 해결할 수 있는지 모르겠어서 질문남깁니다!
답변 2
0
에러 메시지에 적혀있는대로 순환참조 문제입니다.
a 파일은 b를 참조하고, b 파일은 a를 참조해서 그렇습니다.
근데 제 강의에서는 이 문제가 발생할리가 없는데 뭔가 문제가 있어 보이네요.
0
답변해주셔서 감사합니다
제가 멍청하게도 post model 파일에서
posts.js를 require했네요...
주석 작성하면서 자동완성된듯 합니다...
해당 코드를 지우는 것으로 순환참조 문제는 해결됐습니다.
그리고 요청시 상태코드가 300 그대로인 문제는 개발자도구에서 disable cache했더니 해결됐습니다..
쉽게 해결할 에러였는데 이것 때문에 몇시간을 썼네요 ㅠㅠ
에러메시지를 잘 읽어보고 꼼꼼하게 살펴봐야겠습니다.
넥스트 버젼 질문
0
77
2
로그인시 401 Unauthorized 오류가 뜹니다
0
89
1
무한 스크롤 중 스크롤 튐 현상
0
175
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
327
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





