2013-11-23 44 views
0

我有一個for循環調用27次天氣api(27個不同的座標)。node.js request |有時候意外的令牌錯誤有時候不是

var input = { 
      query: coords[1] + ',' + coords[0] , 
      format: 'JSON', 
      fx: '' 
      }; 
var url = _PremiumApiBaseURL + "marine.ashx?q=" + input.query + "&format=" + input.format + "&fx=" + input.fx + "&key=" + _PremiumApiKey;  
request(url,function (err, resp, body){ 
      body = JSON.parse(body); 

返回的正文是字符串類型。 事情是,當做JSON.parse時有時我得到下面顯示的錯誤,有時不會。有時候它會確定3,然後拋出錯誤,有時7,有時只有1,或者有時確定27,並且沒有錯誤。由於27個返回的數據對象總是相同,我看不出問題在哪裏。

SyntaxError: Unexpected token < 
    at Object.parse (native) 
    at Request._callback (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/borrar_final.js:111:29) 
    at Request.self.callback (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/node_modules/request/request.js:129:22) 
    at Request.EventEmitter.emit (events.js:98:17) 
    at Request.<anonymous> (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/node_modules/request/request.js:873:14) 
    at Request.EventEmitter.emit (events.js:117:20) 
    at IncomingMessage.<anonymous> (/Users/nofunat88/Documents/test/nodejs-express-ajax-test/node_modules/request/request.js:824:12) 
    at IncomingMessage.EventEmitter.emit (events.js:117:20) 
    at _stream_readable.js:920:16 
    at process._tickCallback (node.js:415:13) 

問候,

+0

嗨Aitor,我面臨同樣的錯誤,但有錯誤檢查沒有解決這個問題。我不知道它是如何間歇性的。你有任何其他解決方案嗎? – Kishorevarma

+0

對不起,我解決了這個問題,也許你應該打開你自己的線程... – Egidi

回答

1

您應檢查要求時發生錯誤,然後 - 解析身體。

request(url,function (err, resp, body){ 
       if (err) { 
        console.log(err); 
       } else { 
        body = JSON.parse(body); 
       } 
+0

我不明白爲什麼,但添加錯誤檢查後,它不再顯示任何語法錯誤! – Egidi