我正在使用Node和MongoDB构建托管服务器。工作过程看起来像这样:
现在我想实现额外的表单输入,用户可以在服务器中删除文件时设置日期。
因此,有两件事要做:在用户设置的时间内删除文件并删除数据库中的文档。
你对如何实现这样的事情有一些想法吗?
答案 0 :(得分:0)
要删除文件,只需使用fs.unlink()
即可const fs = require('fs');
const deleteFile = (file) => {
fs.unlink("path/to/file/folder/"+file, (err) => {
if (err) throw err;
}
}
你想创建一个setTimeout(),但你需要找到用户提供的日期之前剩余的时间,你应该这样做:
const time_remaining = (date_provided) => new Date(date_provided) - new Date();
然后只使用setTimeout():
let timeOuts = []; // We create an array of timeouts in case we want to cancel one later
// I assume you use express and body-parser
app.post('/upload', (req, res) => {
const timer = setTimeout( () => deleteFile(req.body.file), time_remaining (req.body.date));
timeOuts.push(timer);
}