首页 > 解决方案 > 在 nodejs 中通过 http.request 使用 fs.createWriteStream 的最佳实践是什么

问题描述

我正在使用 fs.createWriteStream 流式传输 xml 文件。无论出于何种原因,如果进来的块碰巧破坏了 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();

标签: javascriptnode.jshttpcreatewritestream

解决方案


推荐阅读