[英]JS / Node try catch (avoid breaking on error)
我在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
不存在所以我希望我會在catch區域中得到錯誤,但我得到的是:
events.js:183 throw er; // Unhandled 'error' event
如何更改它以便我得到指定的錯誤而不是像它現在那樣打破?
您需要將錯誤事件附加到每個流:
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 +有其他好的解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.