我正在尝试从我的应用程序的 keepa api 获取数据,
我的请求的状态代码是 200,但我在每个请求的位置 0 处收到语法错误意外令牌 JSON。
response.on("data", function(data){
const asinData = JSON.parse(data);
console.log(asinData);
res.send();
});
你能打印这个“数据”吗?估计里面有错误。我认为“data”是一个“serverResponse”对象,“serverResponse.data”是您想在那里看到的内容,尝试console.log它。
响应对象是否来自 http 核心模块 get() 方法?如果是这样,这可能会有所帮助:https://nodejs.org/api/http.html#http_http_get_options_callback。
基本上,您获得的响应对象是一个 http.IncomingMessage 实例,它是一个可读的流。该对象上的 data 事件不是在响应主体被完全接收时触发,而是在每次响应主体的一小部分(一大块)被接收时触发。在尝试将其解析为 JavaScript 对象之前,您需要将所有这些块聚合为单个数据。
此外,请注意默认情况下块是作为缓冲区发出的,而不是作为字符串发出的。您可以通过在开始读取块之前设置流编码来将流设置为发出字符串。