Javascript 如何使用NodeEmailer发送base64转换的pdf

Javascript 如何使用NodeEmailer发送base64转换的pdf,javascript,node.js,buffer,nodemailer,Javascript,Node.js,Buffer,Nodemailer,我的服务器上有一个base64版本的pdf,我可以在console.log中查看它的值。该变量称为encodedpdf,doingconsole.log(encodedpdf)显示pdf的base64版本 NodeEmailer允许我们将bsae64文件作为附件发送,并使用缓冲区进行转换。下面是代码 attachments: [{ filename: 'main.pdf', content: new Buffer(encodedpdf,'base6

我的服务器上有一个base64版本的pdf,我可以在console.log中查看它的值。该变量称为
encodedpdf
,doing
console.log(encodedpdf)
显示pdf的base64版本

NodeEmailer允许我们将bsae64文件作为附件发送,并使用缓冲区进行转换。下面是代码

attachments: [{
            filename: 'main.pdf',
            content: new Buffer(encodedpdf,'base64')
          }]
然而,我不断地得到这个错误

TypeError:第一个参数必须是字符串、缓冲区、ArrayBuffer、, 数组,或类似数组的对象

编辑1:

这是我的前端代码,我将pdf转换为base64并将其作为ajax发送

 var element = document.getElementById('element-to-print');
           html2pdf().from(element).outputPdf().then(function(pdf) {
            const newpdf = btoa(pdf);    //This line
            $.post('./setup', newpdf, function(result) {
                console.log('result', result);
            }); 

在我的后端post请求中,我得到了一大块随机字符串,因此我假设
btoa(pdf)
正在将我的pdf转换为base64。这里可能有问题吗?

您使用
新缓冲区(字符串,'base64')
的方式是

请使用以下方法将字符串编码为base64

Buffer.from("I am a tring").toString('base64') 
或者使用NodeEmailer的内置函数发送base64编码字符串pdf

filename: 'your.pdf',
content: 'encodedpdfstring', //EncodedString
encoding: 'base64'

我得到这个错误类型错误:使用nodemailerI的非字符串/缓冲区块无效我对我的问题做了一些更改。请你看看好吗?