Ich versuche ein PDF sofort zu löschen, nachdem es in node.js
generiert wurde. Das generierte PDF wird als E-Mail-Anhang gesendet, auf dropbox
hochgeladen und dann aus dem lokalen Dateisystem gelöscht. Aber wenn ich versuche, es zu löschen, löscht es es nicht, und es sendet die E-Mail auch nicht. Die PDF wird mit erstellt. Hier ist mein Code:Nodejs Sofort generierte Datei löschen
if (result) {
var filename = user.number+ ".pdf";
var path = './public/files/'+filename ;
var options = { filename: path, format: 'Legal', orientation: 'portrait', directory: './public/files/',type: "pdf" };
html = result;
pdf.create(html, options).toFile(function(err, res) {
if (err) return console.log(err);
console.log(res);
});
var dbx = new dropbox({ accessToken: mytoken });
fs.readFile(path,function (err, contents) {
if (err) {
console.log('Error: ', err);
}
dbx.filesUpload({ path: "/"+filename ,contents: contents })
.then(function (response) {
console.log("done")
console.log(response);
})
.catch(function (err) {
console.log(err);
});
});
var mailOptions = {
from: 'xyz', // sender address
to: user.email, // list of receivers
subject: 'Confirmation received', // Subject line
attachments : [{
filename: filename,
path : path
}]
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message %s sent: %s', info.messageId, info.response);
});
fs.unlinkSync(path); // even tried fs.unlink , does not delete file
// fs.unlinkSync(someother file); this one works
}
Also wenn ich das tue fs.unlink' or
fs.unlinkSync`, wenn die Datei bereits vorhanden ist es funktioniert, aber die Dateien, die wie in Pfad erzeugt wird, nicht gelöscht.
Sie müssen warten, bis Sie die E-Mail fertig zu senden. – SLaks
console.log ist Ihr bester Freund hier, wenn Sie etwas anstelle von 'unlinkSync (Pfad)' drucken Sie werden feststellen, dass Ihre 'Nachricht gesendet' auftritt, nachdem Ihr Versuch, die Datei zu löschen –