节点js – 我有一些麻烦与JSON.parse()

我一直在玩youtube API和node.js,到目前为止,我已经能够从API和console.log得到响应到terminal。

当我尝试获取响应并使用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(); 

variablesqueryResponse被设置为undefined并且正在执行queryResponse += chunk in'data'envent处理程序,这意味着queryResponse = queryResponse + chunk因此您可以

 undefined{"youtube":["Api", "response"]} 

你可以通过将queryResponse实例化为一个空string来修复它var queryResponse = ''