Redux - Saga 서버에 요청 시 url 한글 변환

BigbrotherShin·2020년 4월 4일
1

Frontend

목록 보기
20/31
post-thumbnail

http://localhost:3060/hashtag/이미지 같이 url query에 한글이 들어가는 경우 서버에서 다음과 같은 에러가 발생할 수 있다.

TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters

이를 방지하기 위해서는

Use encodeURIComponent() to encode uri

and decodeURIComponent() to decode uri

를 사용해주어야 한다.

프론트: encodeURIComponent() 사용

front/sagas/post.js

function loadHashtagPostsAPI(actionData) {
  return Axios.get(`/hashtag/${encodeURIComponent(actionData)}`);
}

서버: decodeURIComponent() 사용

backend/routes/hashtag.js

router.get('/:tag', async (req, res, next) => {
  // POST /api/posts/hashtag/:tag
  try {
    const hashtagPosts = await db.Post.findAll({
      include: [{
          model: db.Hashtag,
          where: { name: decodeURIComponent(req.params.tag) },
        }]
    });

    return res.status(200).json(hashtagPosts);
  } catch (e) {
    console.error(e);
    next(e);
  }
});

module.exports = router;
profile
JavaScript, Node.js 그리고 React를 배우는

0개의 댓글