2017-09-22 358 views
0

我正在写一个Node.js服务器,我试图从API中获取数据并将其返回给我的用户。我正在采取insightlyResponse并尝试转换为JSON。这是我的代码:为什么数据解析失败?

insightlyResponse.setEncoding('utf8'); 
     let rawData = ''; 
    insightlyResponse.on('data', (chunk) => rawData += chunk); 
    insightlyResponse.on('end',() => { 
    try { 
     const parsedData = JSON.parse(rawData); 
     responseData = "PARSED"; 
    } catch (e) { 
     responseData = `Got error: ${e.message}` 
    } 
    response.end(responseData); 
    }); 

错误是Got error: Unexpected token \u001f in JSON at position 0。这是什么意思,我做错了什么?

+0

“试图转换为JSON”我想你的意思是“试图转换_from_ JSON”。 'rawData'中有什么?大概不是JSON。 – smarx

+0

@smarx我正在如下:https://stackoverflow.com/questions/11826384/calling-a-json-api-with-node-js –

+0

如果我不解析并按原样离开,我会得到一堆乱码,如果我解析我得到一个错误。 –

回答

0

想通了!我仔细检查了API并意识到它可以返回压缩的响应。关掉那个设置并且像魅力一样工作!