12345678910111213141516171819202122 |
- 'use strict';
- module.exports = function parseJSON(res, fn){
- res.text = '';
- res.setEncoding('utf8');
- res.on('data', chunk => {
- res.text += chunk;
- });
- res.on('end', () => {
- try {
- var body = res.text && JSON.parse(res.text);
- } catch (e) {
- var err = e;
- // issue #675: return the raw response if the response parsing fails
- err.rawResponse = res.text || null;
- // issue #876: return the http status code if the response parsing fails
- err.statusCode = res.statusCode;
- } finally {
- fn(err, body);
- }
- });
- };
|