오픈 API를 사용하며 만난 오류들

손연주·2021년 10월 27일
0

1. Request path contains unescaped characters

테스트를 위해 요청 주소를
"http://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json?key={발급받은키값}&movieNm=조제" 이렇게 설정하니 에러가 났다..

const url = encodeURI("http://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json?key={발급받은키값}&movieNm=조제")

URI를 전달 할 때 문제가 없도록 인코딩해주는 함수를 호출해줌으로 쉽게 에러를 해결할 수 있었다.

2. TypeError: Converting circular structure to JSON --> starting at object with constructor 'ClientRequest'

getMovieByTitle: async (req, res) => {
    try {
        const url = encodeURI("http://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json?key={키값}&movieNm=조제")
        const movie = await axios.get(url)
        console.log(movie) 
        return res.status(200).json(movie)
    } catch (err) {
        console.log(err)
    }
}

처음에 위와 같은 코드를 썼을 때 TypeError: Converting circular structure to JSON --> starting at object with constructor 'ClientRequest'라는 오류가 났다.

찾아보니 응답 데이터가 복잡한 구조이고 순환 종속성을 포함하는 전체 응답 객체를 저장하려고 해서 나는 오류라는 걸 알았다. 따라서 전체 원형 객체를 저장하는 대신 필요한 데이터만 받아오니 오류가 해결됐다.

변경한 code

console.log(movie.data)
return res.status(200).json(movie.data)

3. [node.js] msg : Route.get() requires a callback function but got a [object Undefined]

라우터와 컨트롤러 파일에 들어있는 함수명의 불일치로 나타나는 연결 문제였다. 오타난 부분을 수정해주니 해결되었다.

참고

profile
할 수 있다는 생각이 정말 나를 할 수 있게 만들어준다.

0개의 댓글