Nesse código é feito uma verificação se o arquivo existe para poder excluir, porém não foi feito um teste a priori com o arquvio faltando, e nesse caso vai quebrar por causa do seguinte error:
[Error: ENOENT: no such file or directory, stat '/backend/tmp/abf50a17cfae4cf8bf02a4b585b8845f.png'] {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '/backend/tmp/abf50a17cfae4cf8bf02a4b585b8845f.png'
}
Nesse caso deveria ter usando um try catch para pegar o error que estava sendo o feito o teste, visto que na documentação avisa que o fs.promises.stat lança uma exceção caso o arquivo não seja encontrado.
let { avatar } = user;
if (avatar) {
try {
const location = join(multerConfig.directory, avatar.name);
const hasFile = await fs.promises.stat(location);
if (hasFile) {
await fs.promises.unlink(location);
}
} catch {
// arquivo não encontrado
}
}
Faala @weslleystos! Obrigado pelo feedback 💜
Isso é corrigido em aulas posteriores, assim que a lógica de salvar e deletar um arquivo é passada para o StorageProvider.
Nesse código é feito uma verificação se o arquivo existe para poder excluir, porém não foi feito um teste a priori com o arquvio faltando, e nesse caso vai quebrar por causa do seguinte error:
Nesse caso deveria ter usando um try catch para pegar o error que estava sendo o feito o teste, visto que na documentação avisa que o fs.promises.stat lança uma exceção caso o arquivo não seja encontrado.