Функция, которую я написал на сервере node JS, не удаляет изображение. Он не может найти картинку. Но когда набираешь название картинки, удаляет из папки.
Я получаю эту ошибку:
не удалось удалить локальное изображение: ошибка: ENOENT: нет такого файла или каталога, отмените связь «C:\Users\mary\Desktop\Node.js-UploadFiles-RestAPIs\uploads\undefined»
NodeJS: файловый контроллер
const uploadFolder = __basedir + '/uploads/';
const fs = require('fs');
exports.deleteFile=(req, res)=> {
let filename = req.params.filename;
fs.unlink(uploadFolder + filename, (err) => {
if (err) {
console.info("failed to delete local image:"+err);
} else {
console.info('successfully deleted local image');
}
});
}
NodeJS: файловый маршрутизатор
let express = require('express');
let router = express.Router();
let fileWorker = require('../controllers/file.controller.js');
router.delete('/api/file/delete', fileWorker.deleteFile);
module.exports = router;
Сервис.тс :
delete(file : File):Observable<HttpEvent<{}>>{
// const formdata: FormData = new FormData();
// formdata.append('file' , file);
const req = new HttpRequest('DELETE', 'http://localhost:8000/api/file/delete',file, {
responseType: 'text'
});
return this.http.request(req);
}
компонент.ts :
x:any[];
deleteImage(y){
// @ts-ignore
this.x=getFile();
this.imageServis.delete(y).subscribe(event => {
console.info("Here");
});
}
Я знаю. что я могу сделать?
См. undefined в вашей ошибке:
'C:\Users\mary\Desktop\Node.js-UploadFiles-RestAPIs\uploads\undefined'
Имя файла не определено в вашей функции:
exports.deleteFile=(req, res)=> {
let filename = req.params.filename;
fs.unlink(uploadFolder + filename, (err) => {
Вы используете req.params, но кажется, что вы отправляете имя файла в теле:
const req = new HttpRequest('DELETE', 'http://localhost:8000/api/file/delete',file, {
responseType: 'text'
});
Если вы хотите использовать req.params, сделайте следующее:
const req = new HttpRequest('DELETE', 'http://localhost:8000/api/file/delete'+file,null, {
responseType: 'text'
});
router.delete('/api/file/delete/:filename', fileWorker.deleteFile);
Теперь я получаю эту ошибку: не удалось удалить локальное изображение.
Выведите содержимое переменной «файл» в const req = new HttpRequest('DELETE', 'localhost:8000/api/файл/удалить'+файл,
извините, это правильная ошибка: DELETE локальный: 8000/API/файл/удалить [объект% 20File] 404 (не найдено)
Выведите содержимое переменной «файл» в const req = new HttpRequest('DELETE', 'localhost:8000/api/file/delete'+file,
console.info(файл); const req = new HttpRequest('DELETE', 'localhost:8000/api/файл/удалить'+файл, файл в настоящее время является объектом, нам нужно знать, какой ключ содержит имя файла
ключ содержит имя файла: имя
решение: 'DELETE', 'localhost:8000/api/file/delete/'+file.name, null, я решил :) спасибо
ваш
req.params.filename
не определен