728x90
반응형
SMALL
리액트 프론트엔드 기능 구현 도중 node.js 서버와 통신을 할 일이 있다.
그럴 때 url 뒤에 파라미터를 통해서 통신을 하게 되는데 이 때 파라미터에 한글을 넣어서 요청하면 잘 안되는 경우가 있다.
이 때 해결할 수 있는 방법이다.
encodeURIComponent() 와 decodeURIComponent() 사용하기
예시를 한번 보자.
front-end 측 코드
axios 를 임포트해서 사용해주었다.
'http://localhost:3000/한글파라미터' 와 같은 방법으로 요청을 보내면 제대로 작동하지 않기때문에 '한글파라미터' 를 다음 함수를 이용해 인코딩 해준다.
encodeURIComponent("한글 파라미터")
Axios.get(`http://localhost:3000/${encodeURIComponent('한글파라미터')}`).then((response) => {
console.log(response);
});
back-end 측 코드
express를 이용해 서버로부터 인코딩 된 파라미터를 받아서 다음 함수를 이용해 디코딩 해 준다. 그 다음 db에서 정보를 받아와 리턴을 해 주는 코드이다.
decodeURIComponent("인코딩되어 넘어온 파라미터")
const app = express();
//db = {db 정보}
app.get(`/:transparam`, (req, res) => {
const paramDecoded = decodeURIComponent(req.params.transparam);
const sqlQuery = `SELECT * FROM tablename WHERE name = ${paramDecoded};`;
db.query(sqlQuery, paramDecoded, (err, result) => {
res.send(result);
})
})
위 방식을 이용해 한글 파라미터를 변환해 서버와 통신을 할 수 있다.
한글 파라미터 뿐 아니라 모든 종류의 파라미터를 인코딩 해서 주고 받을 수 있다.
728x90
반응형
LIST
'프로그래밍 > react' 카테고리의 다른 글
[react] 간단한 리액트 게시판 만들기 : WYSIWYG ckeditor - ③ 서버 구축 연동하기 (11) | 2020.10.31 |
---|---|
[react] 간단한 리액트 게시판 만들기 : WYSIWYG ckeditor - ② 입력 기능 구현 (5) | 2020.10.30 |
[react] 간단한 리액트 게시판 만들기 : WYSIWYG ckeditor - ① 인터페이스 (0) | 2020.10.30 |
[react]게시판 WYSIWYG(위지윅) 텍스트 에디터(ckEditor 5) 설치하기 (2) | 2020.10.27 |
[react] 리액트 hooks :: setInterval 사용시 문제점과 해결 방법 - ① (2) | 2020.10.23 |