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

박인혁님의 프로필 이미지

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

saga로 데이터를 넘겨주는거에 대해 질문 있습니다.

작성

·

248

0

긴가민가해서 질문 올려요 ㅠㅠ

백앤드 노드 서버 구축하기 - 게시글 좋아요  영상 보고 있는데요,

postCard.js의

const onLike = useCallback( () => {
        dispatch({
            type: LIKE_POST_REQUEST,
            data: post.id
        })
        // true는 false로 / false는 true로 
        // setLiked( (prev) => true)
   }, [])

여기서 data의 post.id를 saga로 보내주는데

그럼 sagas/post.js의 이 부분에서

function likePostAPI(data) {
    return axios.patch(`/post/${data}/like`)
}

post.id는 likePostAPI함수의 매개변수(data)로 입력되고요,

그러면 routes/post.js의

router.patch('/:postId/like'async (reqresnext=> {
    try {
        const post = await Post.findOne({where: {id: req.params.postId}})
        if (!post) {
            return res.status(403).send('게시글이 존재하지 않습니다.')
        }
        await post.addLikers(req.user.id)
        res.json({ PostId: post.idUserId: req.user.id })
    } catch (error) {
        console.error(error)
        next(error)
    }
})

이 부분이 실행되는건데

처음 dispatch의 data로 post.id를 보내주면

post와 id를 합쳐서 저절로 

router.patch('/:postId/like'async (reqresnext=> {

이 코드의 postId로 들어가는게 맞는건가요?

postId를 예를 들어 postEd로 수정하니깐 당연히 에러가 발생하기는 한데... 처음이라 긴가민가하네요ㅠㅠ

만약 data로 post.me라고 보내면 

router.patch('/:postMe/like'async (reqresnext=> {

로 수정하는게 맞는건가요?

감사합니다!!

답변 2

0

박인혁님의 프로필 이미지
박인혁
질문자

2021. 02. 12. 23:05

아아 감사합니다!!!!!!!!!!!!!!!!

에러가 발생했던건 다른 에러였나 보네요

0

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

2021. 02. 12. 22:28

아뇨 :뒤에 이름은 상관없습니다. 그냥 그 자리를 가리키는 이름이고요. postId든 postEd든 postMe든 에러없이 작동합니다.

에러가 나는건 req.params.postEd로 안 바꿔서 그런거 아닌가요.