Javascript API正在返回函数

Javascript API正在返回函数,javascript,node.js,api,Javascript,Node.js,Api,我试图从node.js中的API中获取分数,得到的响应看起来像是一个函数。我不确定如何从这个函数中获取JSON数据 var req = http.request(options, function(res){ res.setEncoding('utf8'); res.on('data', function(data){ console.log(data); }); }); 答案是 shsMSNBCTicker.loadGamesData({ "sport

我试图从node.js中的API中获取分数,得到的响应看起来像是一个函数。我不确定如何从这个函数中获取JSON数据

var req = http.request(options, function(res){
    res.setEncoding('utf8');
    res.on('data', function(data){
        console.log(data);
    });
});
答案是

shsMSNBCTicker.loadGamesData({
"sport": "NBA", 
"period": "20140426", 
"games": [""]
});

在“游戏”中有一堆数据,但这并不重要,而且会占用太多的空间。在这个例子中,让我们假设我正在尝试“运动”;它将返回“NBA”。

您得到的响应是。通常,API将提供JSON和JSONP两种可配置参数。然而,由于您在这里提问,我将假设您对请求没有控制权(也许向API作者发送一条礼貌的消息可能会有所帮助)

您可以提供响应中使用的名称空间并评估响应。但由于这是一个节点,而不是一个浏览器,这种想法充其量也很愚蠢。相反,我建议手动将响应转换为JSON:

JSON.parse(response.replace(/^[^\(]*\(/, '').replace(/\);$/, ''));

我认为这是一个JSONP响应,我可以删除“JSONP”并在请求的url中使用“JSON”。它给了我一个JSON,这正是我想要的。此外,在游戏数组中,API的响应是XML。你知道从XML标记数组中提取数据的好教程吗?@CollinMcGuire NPM可能有很多XML解析器。谷歌发现: