在以下情况下,读取流通过管道传输到写入流:
let rs = fs.createReadStream(getSrcFileName());
let ws = fs.createWriteStream(getTrgFileName());
rs.pipe(ws);
// ...
这很好用。现在,我要确保即使在getTrgFileName()
遇到错误的情况下,总是将{strong>某些内容写入rs
的文件中。如果发生错误,我希望输出文件中的内容为'error occurred'
。
例如,当前,如果getSrcFileName()
引用了不存在的文件,则整个安装将失败,并且不会将任何内容写入输出文件。我可以应用哪些流操作来在发生错误时生成默认值?
谢谢!
答案 0 :(得分:1)
您只需添加on错误处理程序,然后以这种方式写入文件...
const fs = require('fs');
rs.on('error', (error) => {
fs.writeFile('YourFileName.txt', 'error occurred', (err) => {
if (err) throw err;
console.log('File saved, but with errors!');
});
});
或者,如果您只想将其直接链接到已经使用的内容上。...
const fs = require('fs');
let rs = fs.createReadStream(getSrcFileName());
let ws = fs.createWriteStream(getTrgFileName());
rs.pipe(ws)
.on('error', (error) => {
fs.writeFile('YourFileName.txt', 'error occurred', (err) => {
if (err) throw err;
console.log('File saved, but with errors!');
});
});
编辑: 要继续您的写流...
rs.pipe(ws)
.on('error', (error) => {
ws.write('error occurred');
});