인프런 커뮤니티 질문&답변
좋아요 버튼 클릭시 오류
작성
·
296
0
좋아요 버튼 클릭시
TypeError: Cannot read property 'id' of undefined
at C:\Users\SEJUANY\Desktop\Node.js\nodebird\routes\post.js:82:63
...등
오류메세지가 떠서 트윗아이디가 안들어가나 확인해보니
요청에서 트윗아이디는 잘 들어가는걸 확인하고
post.js에서 오타가 있나 확인해 봤는데 따로 오타는 없어 보입니다
router.post('/:id/like', async (res, req, next) => {
try {
const post = await Post.findOne({ where: { id: req.params.id } })
await post.addLiker(req.user.id);
res.send('Ok');
} catch (error) {
console.error(error);
next(error);
}
});
에러 메세지에서 가리키는것을 보아
const post = await Post.findOne({ where: { id: req.params.id } })
여기에서 id값을 못받아오는것 같은데 어디부분을 확인하면 될까요?
답변 6
0
둥치탁치
질문자
허허...강의내용에는 isLoggedIn이 없었어요...ㅠㅠ
선생님께서는 없이도 실행됬었는데....
혹시나 해서 isLoggedIn없이 해봤는데 없어도 실행 잘 되요...
0
제로초(조현영)
지식공유자
코드가 똑같은 게 아닙니다 ㅠㅠ isLoggedIn이 있냐 없냐가 엄청난 차이입니다. 이게 없으면 req.user가 undefined일 때도 실행돼서 에러가 납니다.
0
둥치탁치
질문자
설정 안되있고 쿠키 삭제 후 다시 실행해봤는데도 안됩니다...
제가 지금 제로초님 깃허브에서 다른강좌 좋아요 기능 복사 후 실행해봤는데 이 코드는 실행 되네요;
제가 쓰던 코드
router.post('/:id/like', async (res, req, next) => {
try {
const post = await Post.findOne({ where: { id: req.params.id } })
await post.addLiker(req.user.id);
res.send('Ok');
} catch (error) {
console.error(error);
next(error);
}
});
복사해서 수정한 코드는
router.post('/:id/like', isLoggedIn, async (req, res, next) => {
try {
const post = await Post.findOne({ where: { id: req.params.id }});
await post.addLiker(req.user.id);
res.send('ok');
} catch (error) {
console.error(error);
next(error);
}
});
이렇게 수정했더니 실행이 됩니다...
강의 중에 이렇게 코드는 똑같은데 안될때는
어떻게 해야하나요? sns하면서 이런현상이 좀
잦은것 같아서요 ㅜㅜ
0
제로초(조현영)
지식공유자
req.user.id로 변경하시면 안 되고요. 아래에 있는 게 에러가 나는 겁니다. 그냥 로그인이 문제입니다. 쿠키 문제일 것 같습니다. withCredentials: true같은 설정 하셨나요?
0
0





