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)
答案 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 — Stolen Car",
// "Jack White — Temporary Ground",
// "I Am Kloot — Loch",
// "Portishead — Glory Box"]
response.ok
// => true
})
这不是真正的代码,但很明显第一个回调参数是error
,但你有这个:
function(channel){}
由于(如错误消息所示)它是undefined
,这意味着呼叫成功 - 只是你没有正确读取它。
我一直在偷看模块源代码,实际上并不是很令人印象深刻。它基本上是request的一个小包装,它不会增加太多价值。