node.js - node js - 我在使用 JSON.parse() 时遇到了一些问题

标签 node.js

我一直在使用 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/

相关文章:

node.js - 为什么向 OPTIONS 路由添加 CORS header 不允许浏览器访问我的 API?

Javascript Electron Menu() 不是构造函数

javascript - 从nodejs中的响应生成空白PDF文件

javascript - 如何为传入的 socket.io 消息设置最大大小限制

node.js - 在自定义NodeJS包中,如何对依赖于同一包中函数的函数进行单元测试?

javascript - NodeJS - Pug - 在输入值中添加数据库中的变量

node.js - 如何使用nodejs请求模块复制curl命令?

javascript - 正则表达式查找并用 gulp/node 替换并在替换中使用查找字符串的一部分?

javascript - 尝试使用 Mocha 测试时模型无法正确加载

node.js - Nodejs 中的依赖注入(inject)模型