Yur Gasparyan
Yur Gasparyan

Reputation: 704

Nodejs getting a incomplete response body

I am using http module to send a request to api. So my response body is very large, and I am getting incomplete and when trying to parse to javascript object I am getting an error, that the json is not valid.

Here is my code.

function sendPostRequest(method, url, data, callback) {


    if (typeof  data === 'undefined') {
        data = {};
    }

    var data = querystring.stringify(data);


    var post_options = {
        host: API.Host,
        port: API.Port,
        path: API.Prefix + url,
        method: method,
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Authorization': 'Bearer ' + API_USER.token
        }
    };


    var post_req = http.request(post_options, function (res) {
        res.setEncoding('utf8');
        res.on('data', function (chunk) {
            callback(chunk);
        });
    });

    // post the data
    post_req.write(data);
    post_req.end();
}


sendPostRequest('GET', 'user/get_accounts', data, function (res) {
        res = JSON.parse(res);
        mainWindow.webContents.send('user:account', res);
        return;
    }, true);

Please help to solve this problem! Thanks!

Upvotes: 0

Views: 973

Answers (1)

E. Sundin
E. Sundin

Reputation: 4181

If the data is large and it's provided in chunks(incomplete json) you might have better luck with:

var post_req = http.request(post_options, function (res) {
    res.setEncoding('utf8');
    let rawData = '';
    res.on('data', (chunk) => { rawData += chunk; });
    res.on('end', () => {
      callback(rawData);
    });
});

Upvotes: 2

Related Questions