2017-04-21 3 views
0

API에서 일부 데이터를 요청하고 있습니다. 특히 https://api.tvmaze.com/singlesearch/shows?q=Friends&embed=episodes입니다. 일반적으로 API로 잘못된 요청을 받으면 JSON 형식으로 가져옵니다. 그래서 나는 그 데이터를 쉽게 (불화로) 보낼 수있다. 그러나이 API를 사용하면 friends을 임의의 문자열로 바꾸면 This api.tvmaze.com page can't be found이라는 페이지가 반환됩니다. 어떻게이 데이터를 다시 사용자에게 보낼 수 있습니까?Api - 페이지를 찾을 수 없습니다.

저는 NodeJS 및 node-fetch 모듈을 사용하여 요청을 받고 있습니다.

fetch('https://api.tvmaze.com/singlesearch/shows?q=' + msg + '&embed=episodes') //msg is the users input 
    .then(function(res) { 
    return res.json(); 
    }).then(function(json) { 
    console.log(json.network.name) // if input is friends this returns NBC 
    }); 
+1

사용중인 정확한 라이브러리에 익숙하지 않지만 응답 본문을 확인하기 전에 상태를 확인할 수 있습니다. 찾을 수없는 페이지는 404이며,이 경우 사용자는 자신을 혼란스럽게하는 객체로 만들 수 있습니다. – Ken

+0

켄이 맞습니다. 다른 말로하면, json 구문 분석에 실패했는지 확인해보십시오. 장애가 발생하면 장애 발생시 원하는 모든 동작을 구현하십시오. – Goose

+0

@Ken 어떻게 확인할 수 있습니까? 만약 JSON 응답이라면 보통'(json.error === 404)'를 쓰겠지만, 물론 JSON이 아니기 때문에 상태를 어떻게 확인합니까? –

답변

0

그래서 노드 페치에 100 % 익숙하지는 않지만 .then() 함수에서 res의 상태를 확인할 수 있다고 생각합니다.

fetch('https://api.tvmaze.com/singlesearch/shows?q=' + msg + '&embed=episodes') //msg is the users input 
    .then(function(res) { 
    if(res.status === 404) { 
     //HANDLE THE 404 Page Not Found 
    } else { 
     return res.json(); 
    } 
    }).then(function(json) { 
    console.log(json.network.name) // if input is friends this returns NBC 
    }); 
관련 문제