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