javascript - 在 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();
解决方案
推荐阅读
- excel - 如何遍历高级筛选器中的条件?
- testing - 西葫芦 - 运行测试的问题
- kubernetes - 在 kubernetes 中使用 RDS 而不是 mysql 容器
- c# - 当没有检查的异常时如何在 C# 中预测异常
- c# - String.Format 为相同的代码返回不同的枚举值。如果我在枚举中添加超过 45 个字段
- wordpress - 我想更改礼品卡文字我应该如何覆盖它
- java - Spring boot项目如何保存DB用户名和密码
- javascript - awaitMessages 在我运行它时没有接受我的输入。我正在尝试使用 node.js 和 discord.js 制作一个不和谐的机器人
- php - Laravel 5.5:将 url 添加到 json 对象以保存多张图片
- java - Selenium chrome 驱动程序:不能使用带有 chrome 驱动程序 74 的无头模式