Response Buffer data is truncated in Node JS
Solution 1:
The buffer should only be processed when the end
event fires, otherwise you may be processing an incomplete buffer.
makeRequest("https://jsonplaceholder.typicode.com/users/1/")
.then((res) =>
new Promise((resolve) => {
let totalBuffer = "";
res.on("data", (buffer) => {
totalBuffer += buffer.toString("utf8");
});
res.on("end", () => resolve(totalBuffer));
})
)
.then(console.log)
.catch(console.error);
The response is almost always truncated into several pieces when the file exceeds 1mb, so it is necessary to use the end
event which indicates that all available data has been handled by the stream.
https://nodejs.org/api/http.html Look for "JSON fetching example"