bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Проверка на наличие файла?

Здравствуйте. Подскажите пожалуйста, как правильно сделать проверку на наличие файла?

const fsPromises = require('fs').promises;

    if (await fsPromises.access(fullPath, fs.constants.R_OK)) 
      await fsPromises.unlink(fullPath);
}


Получаю ошибку:

(node:10253) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, stat '/home/user/ProjectWeb/coffee-print-server/galleries/pictures/10'


Получается, что как бы проверка бессмысленная, можно просто обернуть

try {
      await fsPromises.unlink(fullPath);
    } catch (err) { }


Или как правильно сделать?

Спасибо.
  • Вопрос задан
  • 1317 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
const fs = require('fs'); // or import fs from 'fs'; with esm / experimental modules
function isFileExists(path) {
  return new Promise((resolve, reject) => {
    fs.access(path, fs.constants.F_OK, err => {
      if(!err) return resolve(true);
      if(err.code === 'ENOENT') return resolve(false);
      reject(err);
    });
  });
}


Получается, что как бы проверка бессмысленная, можно просто обернуть
в случае простого unlink можно, для более сложной логики лучше сначала проверить
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы