【问题标题】:Can not find deleted image找不到已删除的图像
【发布时间】:2019-04-08 20:14:57
【问题描述】:

我在节点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.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; 

Service.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);
    }

component.ts:

  x:any[];

  deleteImage(y){

  // @ts-ignore
  this.x=getFile();

    this.imageServis.delete(y).subscribe(event => {

      console.log("Here");

    });
}

【问题讨论】:

  • 您的req.params.filename 未定义
  • 我知道。我能做什么?

标签: javascript node.js api


【解决方案1】:

查看错误中的未定义:

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

【讨论】:

  • 现在我得到这个错误:删除本地图像失败:错误:ENOENT:没有这样的文件或目录,取消链接 'C:\Users\mary\Desktop\Node.js-UploadFiles-RestAPIs\uploads [目标文件]'
  • 请在 const req = new HttpRequest('DELETE', 'localhost:8000/api/file/delete'+file, 中打印变量“file”的内容
  • 对不起,这是正确的错误:DELETE localhost:8000/api/file/delete[object%20File] 404 (Not Found)
  • 请在 const req = new HttpRequest('DELETE', 'localhost:8000/api/file/delete'+file, 中打印变量“file”的内容
  • console.log(file); const req = new HttpRequest('DELETE', 'localhost:8000/api/file/delete'+file, 文件当前是一个对象,我们需要知道哪个键包含文件名
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-17
  • 2021-03-04
  • 2017-08-26
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多