這個問題在這里已經有了答案: node.js 洗掉檔案 20 個答案 20 小時前關閉。
我有兩個異步功能:
- 一種用于在 PostgreSQL 中創建物件并上傳在此物件中命名的檔案。
- 另一個用于洗掉此物體并從檔案夾中洗掉檔案。
我不知道如何從 PostgreSQL 物體中提取檔案名并洗掉我的“靜態”檔案夾中的某些檔案
PostgreSQL 中的物體如下所示:
Car:
{
'name': 'Nissan 350Z',
'description': 'new',
'image': '123wejdsefberfkj.jpg',
'video': '23rusdjf8ioysdfs.mp4'
}
創建函式:
在這里,我從表單資料中獲取檔案,為檔案創建唯一名稱并將其保存在 PostgreSQL 中,然后將檔案保存在“靜態”檔案夾中。
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)
}
}
uj5u.com熱心網友回復:
您可以使用 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408050.html
標籤:
上一篇:Oracle中DUMP函式的postgresql等價物是什么?
下一篇:更新postgres中的多個案例
