2017-09-24 28 views
0

我想用一個動畫數據庫API和獲得的動漫節目的信息,繼承人什麼,我試圖做的NodeJS HTTP JSON API不工作

var http = require("http"); 
const url = "http://kitsu.io/api/edge/anime?=cowboy%20bebop"; 
    http.get(url, res => { 
    res.setEncoding("utf8"); 
    let body = ""; 
    res.on("data", data => { 
    body += data; 
}); 
res.on("end",() => { 
    body = JSON.parse(body); 
    //then do stuff here 
}); 
}); 

和我得到的錯誤是

undefined:1 



SyntaxError: Unexpected end of JSON input 
at JSON.parse (<anonymous>) 
at IncomingMessage.res.on 
(C:\Users\Admin\Desktop\project\index.js:113:17) 
at emitNone (events.js:91:20) 
at IncomingMessage.emit (events.js:185:7) 
at endReadableNT (_stream_readable.js:974:12) 
at _combinedTickCallback (internal/process/next_tick.js:74:11) 
at process._tickCallback (internal/process/next_tick.js:98:9) 

線113是

body = JSON.parse(body); 

(從第一個代碼片斷)

API的文檔是here。當body是具有無效JSON

+0

請告訴我在嘗試解析它之前,在你的'body'變量裏面? –

+0

https://developer.mozilla.org/en-US/docs/Web/API/Body/json直接回復你可以做異步調用的JSON .. –

+1

你的api調用返回狀態碼301,所以你的身體是空的 –

回答

0
JSON.parse(body); 

SyntaxError: Unexpected end of JSON input

被拋出。檢查字符串值並確保它是json格式並且沒有任何錯誤。

JSON.parse如果提供的字節長度與數據不匹配,可能會給您「意外的輸入結束」錯誤。

0

你給的API一個無效的JSON:在請求API查詢(這會導致它返回一個HTML錯誤頁面不幸)

您想要使用的過濾器的查詢,像這樣:http://kitsu.io/api/edge/anime?filter[text]=cowboy%20bebop