javascript - 找不到已删除的图像

标签 javascript node.js api

我在node JS服务器上编写的函数不会删除图像。他找不到那张照片。但是,当您键入图片名称时,它会将其从文件夹中删除。

我收到此错误:

无法删除本地镜像:错误:ENOENT:没有这样的文件或目录,取消链接“C:\Users\mary\Desktop\Node.js-UploadFiles-RestAPIs\uploads\undefined”

NodeJS:文件 Controller


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.log("failed to delete local image:"+err);
        } else {
            console.log('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; 

服务.ts:


    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.log("Here");

    });
}

最佳答案

查看错误中的未定义:

'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);

关于javascript - 找不到已删除的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573171/

相关文章:

javascript - 使用 jQuery 我想在 TD 悬停时突出显示表中的列

javascript - Facebook Javascript API 不断重新连接

java - C#可以连接,但是java无法连接

api - 有没有办法使用 AWS CLI 按名称而不是 ID 从 AWS API Gateway 获取 API?

javascript - Google 图表双 Y 轴线上的 Y 轴格式

javascript - 将 javascript 中的值引入单选按钮

javascript - 网站导航无法滚动到手机上的正确 div

node.js - 如何在 Sequelize 结果中重命名实体名称?

node.js - 错误 : ENOENT, 没有这样的文件或目录 - 通过管道传输到 fs.createWriteStream 的 fs.createReadStream

javascript - Node.js(express) .end() 与 JSONP