我在node.js中有一个功能,可以将文件从文件夹中复制到另一个文件:
function copyfile(source,target) {
try {
fs.createReadStream(source).pipe(fs.createWriteStream(target));
}
catch(err) {
console.log(`There was an error - ${err}`);
}
}
copyfile('source/134.txt', 'target/1b.txt');
文件134.txt
不存在,所以我希望可以在捕获区域中得到错误,但我却得到了:
events.js:183 throw er; // Unhandled 'error' event
如何更改它,以便得到指定的错误并且不会像现在那样中断?
答案 0 :(得分:8)
您需要将错误事件附加到每个流:
function copyfile(source, target) {
fs.createReadStream(source).on('error', function (e) {
console.log(e)
}).pipe(fs.createWriteStream(target).on('error', function (e) {
console.log(e)
}))
}
如果可以使用node10 +,还可以使用其他solution