我一直在使用 youtube API 和 node.js,到目前为止,我已经能够从 API 和 console.log
获得响应到终端。
当我尝试获取响应并使用 JSON.parse
时,我收到一个奇怪的错误:
Got response: 200
undefined:1
http://www.w3.or
^
SyntaxError: Unexpected token u
at Object.parse (native)
at IncomingMessage.<anonymous> (/home/ubuntu/node_temp4/index.js:19:10)
at IncomingMessage.emit (events.js:88:20)
at HTTPParser.onMessageComplete (http.js:137:23)
at Socket.ondata (http.js:1137:24)
at TCP.onread (net.js:354:27)
这是我的脚本:
var http = require("http");
var searchQuery = "cats";
var queryResponse;
var options = {
host: 'gdata.youtube.com',
path: "/feeds/api/videos?q=" + searchQuery + "&max-results=1&v=2&alt=json"
};
http.get(options, function(response) {
console.log("Got response: " + response.statusCode);
response.on('data', function(chunk){
queryResponse += chunk;
});
response.on('end', function(){
JSON.parse(queryResponse);
console.log('end');
});
}).end();
最佳答案
变量 queryResponse
设置为 undefined
并且您在 'data' 事件处理程序中执行 queryResponse += chunk
这意味着 queryResponse = queryResponse + chunk
这样你就得到了
undefined{"youtube":["Api", "response"]}
您可以通过将 queryResponse
实例化为空字符串来修复它 var queryResponse = ''
关于node.js - node js - 我在使用 JSON.parse() 时遇到了一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9340398/