NodeJS - Сохраняйте данные формы в PDF-файл и прикрепляйте по электронной почте. - PullRequest
0 голосов
/ 26 августа 2018

Я использую jsPdf для генерации PDF-файла в угловом формате 2. Я хочу отправить этот файл на сервер js узла и сохранить его на каком-либо сервере.После сохранения файла я хочу прикрепить его к электронной почте с помощью Nodemailer и отправить электронное письмо.

Я могу отправить файл с angula2 на сервер Nodejs через formData, но я не уверен, как сохранить данные формы вPDF файлНа сервере файл сохраняется во временную папку.Я хочу сохранить его в указанном месте.

У меня сейчас два вопроса: - 1. Как сохранить полученные данные формы в файл PDF в определенном месте.2. Как прикрепить этот файл к электронному письму с помощью nodeMailer.

Код клиента: -

public onGeneratePDF(): void {
//this.invoiceData = param.data;

const doc = new jsPDF('p','pt','a4');
let content = this.invoicePDF.nativeElement;

let specialElementHandler = {
  '#editor': function (element, renderer) {
    return true;
  }
};

setTimeout(()=>{
  doc.fromHTML(content.innerHTML, 15, 15, { 
    'width': 200, 
    'elementHandlers': specialElementHandler 
  }, function() { 

      var data = new Blob([doc.output()], {
        type: 'application/pdf'
      });

      var formData = new FormData();
      formData.append("pdf", data, "myfile.pdf");
      var request = new XMLHttpRequest();
      request.open("POST", URL); // Change to your server
      request.send(formData);
    //doc.save('D:/' + new Date() + '.pdf'); 
  })}, 0);
  }

Код сервера: -

module.exports.uploadDocument = function(req, res) {

form.parse(req, function(err, fields, files) {
    console.log("File received:\nName:"+files.pdf.name+"\ntype:"+files.pdf.type);
});

form.on('end', function() {
    console.log(this.openedFiles[0].path);
           res.status(200).json({ success: false, message: 'Thank you!!'});
});
})
...