Я понял, почему это происходит. Это узел bcoz получает большие запросы данных в чанках , и поэтому я получил частичные JSON данные , и ошибка узла вызвала.
В целях тестирования можно проверить следующий код на локальном хосте:
let http = require('http'),
fs = require('fs');
http.createServer((req, resp) => {
if(req.method === 'GET' && req.url === '/') {
fs.readFile('./index.html', (err, res) => {
resp.writeHead('200', { 'Content-Type': 'text/html' });
resp.end(res, 'utf8');
});
} else if(req.method === 'POST') req.on( 'data', chunk => console.log('Length', chunk.length) );
}).listen(8080);
<input type="file" accept="image/*" onchange="f(this);">
<script>
function f(el) {
var fr = new FileReader();
fr.onload = function() {
console.log('Length', fr.result.length);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/', true);
xhr.send(fr.result);
};
fr.readAsDataURL(el.files[0]);
};
</script>
Удобное решение
Напишите что-то вроде
let chunk = '';
req.on('data', _chunk => chunk += _chunk).on('end', () => {
// do something with chunk
});