TypeScript - Request Query String 형태 문제

권민제·2021년 9월 18일
0

TypeScript

목록 보기
4/4
post-thumbnail

🐛문제상황

app.post('/v1/test', async(req: Request, res: Response)=>{
  const test_query: String = req.query.test_query;
  res.send({
    result: test_query
  });
}

query에서 string 데이터를 받아올때 위에처럼 String형태로 받아오게 되면 req.query.test_query 부분에 에러가 나타날 것이다.

그렇다면 에러를 해결하기위해 JSON.stringify 감싸서 변환해서 String 형태로 저장하게 된다면 다음과 같은 상황이 된다.

상황

JSON.stringify로 변환한 req.query.test_query에 test라는 문자열을 넣게 된다면

'"test"' 이런식으로 String 안에 큰따옴표가 붙어있는 형태로 저장이 된다.

이렇게 저장이 된다면 SQL문에서 사용할 때 문제가 발생하게 된다.

✅ 해결방법

app.post('/v1/test', async(req: Request, res: Response)=>{
  const userSocial: String = JSON.stringify(req.query.user_social).replace(/\"/g,''); // 방법 1
  const test_query: String = req.query.test_query as String; // 방법 2
  res.send({
    result: test_query
  })
});

방법 1 : JSON.stringify로 변활을 한다면 replace 함수로 문자열 안에있는 큰따옴표를 제거하는 방법이다.

방법 2 : 타입 단언 as 사용 타입 단언을 통해 req.query.test_query가 String 형태로 타입을 정해준다

타입 단언

굳이 개발자가 타입 지정을 하지 않아도 TS 컴파일러가 추론이 가능한 타입 추론 기능

profile
성장하는 개발자!

0개의 댓글