Как лучше всего использовать fs.createWriteStream поверх http.request в nodejs
Я транслирую xml-файл, используя fs.createWriteStream. По какой-то причине, если входящий фрагмент разбивает закрывающий тег xml, я вижу, что к данным в конце фрагмента добавляется группа нулевых символов, и это нарушает xml.
Это может быть вызвано тем, что мы должны заменить все зарезервированные значения xml (<,>, и т. Д.) На соответствующие символы (<,>и т. Д.) После потоковой передачи файла данных. Любые идеи о том, почему это возникает и как правильно с этим справиться? Вот основной код потока:
var writableStream = fs.createWriteStream(file_path + send_id + '.xml', { highWaterMark: 128 * 1024 });
var options = {
host: domain_name,
path: f_path,
method: 'POST',
'Content-Type': 'text/html',
'Content-Length':Buffer.byteLength(send_id)
};
var req = http.request(options, (res) =>{
res.setEncoding('utf8');
res.on('data', (chunk) => {
writableStream.write(chunk);
});
res.on('end', () => {
console.log('No more data in response');
});
});
req.write(send_id);
req.end();