Nodejs在特定时间后删除上传的文件

真相

我正在使用 Node 和 MongoDB 构建托管服务器。工作过程如下所示:

  1. 用户打开包含 4 个输入的表单的页面:
    • 发件人电子邮件
    • 收件人电子邮件
    • 从发送者到接收者的消息
    • 文件(多个)
  2. 用户正确填写所有输入并在服务器上发送 POST 请求。
  3. 服务器使用 multer 处理表单并保存文件,然后在回调中,带有字段数据的对象被准备好并发送到 MongoLab 上的数据库,其中存储了从表单接收到的信息。
  4. 在将文档保存在数据库中的回调中,服务器将邮件发送给发送方和接收方,并生成链接,他们可以从那里下载上传的文件。

现在我想实现额外的表单输入,用户可以在其中设置应该从服务器中删除他的文件的日期。

所以有两件事要做:在用户设置的时间删除文件和删除数据库中的文档。

你有什么想法如何实现这样的事情吗?

亚历山大·森吉斯

要删除文件,您只需使用 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);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在特定时间后如何删除SKSpriteNodes

在特定时间间隔后在Firefox中删除Cookie

在 mongoDB 中的特定时间后自动删除文档

一定时间后自动删除条目和文件

在特定时间间隔后如何检查文件是否存在

如何搜索特定时间后修改的文件?

在特定时间后重置共享首选项文件

在特定时间范围内删除文件

上传后删除文件

在指定时间后自动删除对象

特定时间后的消息指示符?

在特定时间戳后添加行

在ASP.NET中配置数据库的行以在特定时间后删除的最佳方法

在特定时间间隔后删除php / javascript中的警报栏

在特定类中经过一定时间后,删除inParse中的对象

如何在页面加载后的特定时间添加和删除HTML类?

如何在特定时间后自动从 Firestore 中删除数据?

如何在Django中的特定时间后自动从数据库中删除记录

如何让机器人在特定时间段后删除消息

如何在特定时间后查找所有新修改的文件?(Windows命令行)

批处理文件执行,并在特定时间段后自动关闭

如何在特定时间后运行功能,然后在特定时间后将其关闭?

无法从在特定时间段创建的目录中删除文件

删除/复制在Batch / Powershell中的两个特定时间之间获取的所有文件

在特定时间后撤消和删除文件asp.net mvc

如何在特定时间播放文件

在特定时间和日期撰写文件

PHP在特定时间移动文件

Heroku 应用程序文件上传 - 文件在一段时间后被删除?