node读取文件失败怎么处理?

用fs.createReadStream和fs.readFileSync读取文件

但是一旦文件没有找到
就会报错

2020-12-23 16:42:44,082 ERROR 25598 nodejs.ENOENTError: ENOENT: no such file or directory, open '/Users/laiyinan/Desktop/2020114/jpg/UG1NBQF1_1604470696777.jpg' (uncaughtException throw 1 times on pid:25598)
ENOENTError: ENOENT: no such file or directory, open '/Users/laiyinan/Desktop/2020114/jpg/UG1NBQF1_1604470696777.jpg' (uncaughtException throw 1 times on pid:25598)
errno: -2
code: "ENOENT"
syscall: "open"
path: "/Users/laiyinan/Desktop/2020114/jpg/UG1NBQF1_1604470696777.jpg"
name: "ENOENTError"
pid: 25598
hostname: laiyinandeMacBook-Pro.local

报错以后node就会退出 也就是整个后台都崩了

尝试用try catch包住 还是一样

如何处理?

报错的截图:
image

阅读 4.8k
1 个回答

我没复现你的问题,我这是可以 try-catch 住的,try-catch 之后的代码也可以正常执行,node 进程也不会崩掉:

var fs = require('fs');

console.log('准备执行 ...');

var fileContents;
try {
    fileContents = fs.readFileSync('test.txt');
} catch (err) {
    if (err && err.code === 'ENOENT') {
        console.log('错误:文件未找到');
    } else {
        console.log('错误:其他原因');
    }
}


console.log('继续执行 ...');
while (true) {
   // 死循环阻止进程结束,比如 WebServer 本质上就是一个死循环不断监听请求
}

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题