Ошибка: ENOENT: нет такого файла или каталога, отсоедините
Как видите, по пути есть файл. Но fs говорит, что нет такого файла или каталога. Не могу понять почему?
В другом файле я могу удалить с тем же кодом.
Мой файл boat.js:
boat.findById(req.params.id,function(err, foundBoat) {
if(err){
console.log(err);
}else{
foundBoat.boatsFoto.forEach(function(path){
console.log(typeof(path));
fs.unlink("../public"+path,function(err){
if(err) throw err;
console.log('File deleted!');
});
});
}
});
И это моя ошибка:
Error: ENOENT: no such file or directory, unlink '../public/uploads/akingokay/BoatsFoto/1524411110335kiralik-tekne.jpg'
at Error (native)
6 ответов
Можете ли вы попробовать это вместо этого:
fs.unlink("public"+path,function(err){
if(err) throw err;
console.log('File deleted!');
});
Вы должны сначала установить path
модуль через CLI:
npm install path --save
и использовать это:
fs.unlink(path.join("public/" + path, photo.id + ".jpg"), function(response) {
// handle the callback
});
Установить и импортировать path
модуль. это поможет вам https://nodejs.org/api/path.html
Вместо "../public"+path
использование path.join("../", "public", path);
Это зависит от того, где вы размещаете сервер. Если он находится на локальной машине, вам, вероятно, потребуется указать полный путь к файлу (файлам), который вы хотите удалить или манипулировать им. Если он находится на работающем веб-сервере, вам нужно будет указать полный путь к нему.
на "локальной машине" это может выглядеть примерно так:
fs.unlink('/home/user/project/someothername/'+filename, err => {
// handler
});
Проверьте, имеет ли переменная пути, которую вы добавляете в "/public", "/" в начале. Если его нет / он разделяется, он будет трактовать путь как единое целое.
Считай, что ты в
app.js
file и укажите относительный путь удаления файла в
fs.unlink('path/to/file')
. это сработает!