Как лучше всего использовать 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();

0 ответов

Другие вопросы по тегам