Как удалить файл в sailsjs?
Я работал над проектом, в котором мне нужно регулярно обновлять ассоциации и базу данных. Я застрял с удалением файлов. Я использовал для этой цели fs.unlink из fs, но он выдает ошибку.
Фрагмент кода -
fs.unlinkSync("/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png");
sails.log.info("Logo deleted succesfully");
Журнал ошибок -
fs.js:932
return binding.unlink(pathModule._makeLong(path));
Error: ENOENT: no such file or directory, unlink '/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png'
Также файл 70c9c2c4-74de-41c1-b096-c403b749a1a9.png существует в пути /images/uploadedImages/, который находится внутри папки активов структуры sailsjs.
Нет ли способа достичь этого?
2 ответа
Разобрался с проблемой. Фреймворк Sailsjs не начинает поиск пути внутри папки активов самостоятельно.
Изменение пути от - /images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png
в ./assets/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png
решает проблему.
Кажется, файл, который вы передали fs.unlinkSync()
не существует, убедитесь, что у вас есть этот файл
/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png
тогда это будет работать.
Если кто-то все еще находит ответ, ниже может быть хороший подход, если вы хотите проделать некоторую операцию с файлом.
с помощью fs.access вы можете проверить, доступен ли файл или нет, прежде чем выполнять какие-либо операции с файлом. Можно также использовать fs.accessSync для синхронного поведения.
В приведенном ниже примере я использовал fs.unlink, но также можно использовать fs.unlinkSync для удаления файла.
// import in file
const fs = require('fs')
// path of your file
let path = 'path to your file'
// fs.access will check if file is available or not
fs.access(path, fs.F_OK, (err) => {
if (err) {
console.error(err)
return
}
//file exists, Go for delete operation
fs.unlink(path , function (err) {
if (err) {
console.error(err);
return
}
console.log('Image File has been Deleted');
});
})