gpt4 book ai didi

node.js - 如何使用 NodeJS 删除文件?

转载 作者:行者123 更新时间:2023-12-02 01:48:16 25 4
gpt4 key购买 nike

我有两个异步函数:

  1. 用于在 PostgreSQL 中创建对象并上传在此对象中命名的文件。
  2. 另一个用于删除该实体并从文件夹中删除文件的操作。

我不知道如何从 PostgreSQL 实体中提取文件名并删除“静态”文件夹中的某些文件

PostgreSQL 中的实体如下所示:

Car:
{
'name': 'Nissan 350Z',
'description': 'new',
'image': '123wejdsefberfkj.jpg',
'video': '23rusdjf8ioysdfs.mp4'
}

创建函数:

这里我从表单数据获取文件,为文件创建唯一的名称并将其保存在 PostgreSQL 中,然后将文件保存在“static”文件夹中。

 let videoName = uuid.v4() + '.mp4';
let imageName = uuid.v4() + '.jpg';
let {name,description} = req.body;
const {video, image} = req.files;
const car = await Car.create( {name, description, video: videoName,image: imageName})
.then(video.mv(path.resolve(__dirname,'..', 'static', videoName)))
.then(image.mv(path.resolve(__dirname,'..', 'static', imgName)))

删除功能:

这里我需要从数据库中提取文件名并从文件夹中删除它们

一点伪代码:

async delete(req, res) {
try {
const {id} = req.params;
await Car.findOne({where:{id}})
.then( async data => {
if(data) {
await let videoName = Car.@extract_video_name@ ({where: {id}})
.then(mv(path.delete(__dirname,'..','static',videoName)))
await Car.destroy({where:{id}}).then(() => {
return res.json("Car deleted");
})
} else {
return res.json("This Car doesn't exist in database");
}
})

} catch (e) {
console.error(e)
}
}

最佳答案

您可以使用 fs,使用 const fs = require('fs'); 要求它

您无需安装 npm 软件包,它包含在 Node.js 中。

此代码允许您通过创建文件夹(如果不存在)并将文件上传到该目录来将文件保存到目录中

  let path = String(`./directoryName/${fileName}`);
fs.mkdirSync('./directoryName', { recursive: true });
fs.writeFileSync(path, data);

您可以使用删除该文件

  fs.unlink(path, (err) => {
if (err) throw err //handle your error the way you want to;
console.log('path/file.txt was deleted');//or else the file will be deleted
});
);

引用:https://nodejs.org/api/fs.html

关于node.js - 如何使用 NodeJS 删除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70651858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com