在nodejs中获得JSON的新功能会出现一些错误

时间:2016-05-23 15:15:10

标签: javascript json node.js getjson twitch

getJSON('https://api.twitch.tv/kraken/streams/Jonathan_x64', 
function(channel) {

    if (channel["stream"] == null) { 
        //do something

    } else {
        ////do something else 

    }
});

这是我当前的代码,但是当我运行它时,我收到以下错误

 if (channel["stream"] == null) {
               ^

TypeError: Cannot read property 'stream' of undefined
    at E:\my ultemet bot\index.js:10:16
    at Request._callback (E:\my ultemet bot\node_modules\get-JSON\lib\node.js:11:5)
    at Request.self.callback (E:\my ultemet bot\node_modules\request\request.js:200:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (E:\my ultemet bot\node_modules\request\request.js:1067:10)
    at emitOne (events.js:101:20)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (E:\my ultemet bot\node_modules\request\request.js:988:12)
    at emitNone (events.js:91:20)

1 个答案:

答案 0 :(得分:2)

据我所知,Node中没有内置的顶级getJSON()函数,因此您必须使用自定义函数。

从您共享的堆栈跟踪中:

at Request._callback (E:\my ultemet bot\node_modules\get-JSON\lib\node.js:11:5)
                                        ^^^^^^^^^^^^^^^^^^^^^

...我们了解到您使用的是NPM third-party module。在那里,找到documentation

是微不足道的
var getJSON = require('get-json')

getJSON('http://api.listenparadise.org', function(error, response){

    error
    // undefined

    response.result
    // ["Beth Orton &mdash; Stolen Car",
    // "Jack White &mdash; Temporary Ground",
    // "I Am Kloot &mdash; Loch",
    // "Portishead &mdash; Glory Box"]

    response.ok
    // => true

})

这不是真正的代码,但很明显第一个回调参数是error,但你有这个:

function(channel){}

由于(如错误消息所示)它是undefined,这意味着呼叫成功 - 只是你没有正确读取它。

我一直在偷看模块源代码,实际上并不是很令人印象深刻。它基本上是request的一个小包装,它不会增加太多价值。