gpt4 book ai didi

node.js - 从 accessSync 返回 ENOENT 以外的值

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:41 25 4
gpt4 key购买 nike

accessSync 找不到文件/目录而不是 ENOENT 时,我如何返回 false

单元测试

it.only('should be able to read a file stream only if a file exist', function() {
let testfile = testpath+'/imageeee.png';
let ok = FileService.existsAsync(testfile);

ok = ok.then((result) => {
console.log('exists: ', result);
return FileService.createReadStream(testfile);
});

ok = ok.then((result) => {
assert.isNotNull(result.path);
assert.equal(result.path, testfile);
assert.isTrue(result.readable, true);
});
return ok;
});

功能

 existsAsync(path) {
let ok = fs.accessAsync(path, fs.F_OK);
ok = ok.then(function(error) {
if (error) {
return false;
} else {
return true;
}
});
return ok;
},

错误

 Error: ENOENT: no such file or directory, access '/home/j/Work/imageeee.png'

最佳答案

任何引发错误的内容都可以包含在 try...catch block 中以捕获错误并从那里继续。如果这是这里的问题函数:

fs.accessAsync(path, fs.F_OK);

将其包装在 try catch 中,并在错误情况下返回 false:

try {
fs.accessAsync(path, fs.F_OK);
// ... other code
return true;
} catch(e) {
// log the error ?
return false;
}

关于node.js - 从 accessSync 返回 ENOENT 以外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53656559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com