2012-12-07 17 views
1

我正在使用在npm上找到的请求模块,我想知道是否有结束事件,我可以绑定到。我问的原因是因为我要求一个JSON,如果我在获得响应后直接尝试使用JSON.parse,我会收到一个错误。代码看起来像这样。使用请求模块时是否有结束事件?

var parseJSON = function(JSON, cb){ 

    var parsed = JSON.parse(JSON); 
    cb(parsed); 

}; 

request(url, function(error, response, body) { 

    parseJSON(body, function(bodyObj){ 

     // do stuff with bodyObj... 

    }); 
}); 

试图做到这一点,提供了以下错误......

var parsed = JSON.parse(JSON); 
       ^
has no method 'parse' 
    at parseJSON (/home/stephen/Desktop/redditjs/reddit.js:31:20) 
    at Requester.collector [as _callback] (/home/stephen/Desktop/redditjs/reddit.js:43:5) 
    at Request.init.self.callback (/home/stephen/node_modules/request/main.js:122:22) 
    at Request.EventEmitter.emit (events.js:99:17) 
    at Request.<anonymous> (/home/stephen/node_modules/request/main.js:661:16) 
    at Request.EventEmitter.emit (events.js:126:20) 
    at IncomingMessage.Request.start.self.req.self.httpModule.request.buffer (/home/stephen/node_modules/request/main.js:623:14) 
    at IncomingMessage.EventEmitter.emit (events.js:126:20) 
    at IncomingMessage._emitEnd (http.js:366:10) 
    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23 

回答

1

的问题是,你要覆盖全球JSON对象。

这会工作得很好:

var parseJSON = function(MyJSON, cb){ 

    var parsed = JSON.parse(MyJSON); 
    cb(parsed); 

}; 
+0

好知道,谢谢!被困住了一段时间。 – Wiggles

相关问题