Если пользователь отменяет диалоговое окно без выбора файла, в консоли выдается ошибка ERR_INVALID_ARG_TYPE
. Полная ошибка читается как The "path" argument must be one of type string, Buffer, or URL. Received type object
, что, как я полагаю, имеет место, потому что возвращается undefined
.
Это происходит как минимум в контексте writeFile
, readFile
и unlink
.
Я новичок в Node и даже новее в FS, поэтому мне интересно, есть ли подходящий способ справиться с этой ошибкой, кроме ее игнорирования?
Я проверил документацию, но не смог найти ничего, относящегося конкретно к этому обстоятельству (то есть пользователь отменяет диалоговое окно без выбора файла).
Пример
удалить файл через unlink
document.querySelector('#delete-file').addEventListener('click', ()=>{
dialog.showOpenDialog((filename)=>{
if (filename === undefined){
console.log('No files were selected.')
return
}
if (!fs.existsSync(filename)){
alert(`The file, ${filename}, doesn't exist.`)
}
fs.unlink(filename, (err)=>{
if (err){
console.log(`An error occurred while updating the file: ${err.message}`)
return
}
alert('The file has been deleted.')
})
})
}, false)