簡體   English   中英

JS / Node嘗試catch(避免出錯)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM