Ich erstelle ein REST-Backend mit ExpressJS. Ein Teil des Backends erlaubt Benutzern, Datei-Assets hochzuladen, die nur für 10 Minuten existieren sollten.Wird setTimeout sicherstellen, dass etwas in NodeJS ausgeführt wird?
Es sicher zu verwenden setTimeout
, um die Datei nach 10 Minuten zu löschen, oder gibt es bessere Möglichkeiten, dies in NodeJS zu tun? Wie kann ich sicherstellen, dass die Datei gelöscht wird? Hier ist meine aktuelle Lösung:
router.post('/upload', fileUpload.single('asset'), (req, res) => {
// Do something with the file
res.status(201).end();
setTimeout(() => {
// Delete the file
}, 600000);
});
Also sollte ich nicht 'setTimeout' innerhalb' router.post' verwenden? – ItsGreg
Nun ... Sie sollten kein Zeitlimit für jede Datei erstellen, die Sie löschen möchten. Erstellen Sie eine einzelne sich wiederholende Aufgabe, die alle ausstehenden Dateien behandelt. Und ja, ich würde diese Methode starten, wenn der Server gestartet wird. Wenn das ausstehende Array leer ist, wird diese Methode einfach nichts tun. –
Das macht Sinn. Danke für den Hinweis. – ItsGreg