我使用Node js版本6.10在AWS lambda上创建了一个函数。 我需要从html字符串创建PDF文件并在电子邮件中发送该文件。 以下是我的代码:
exports.handler = function index(event, context, callback) {
var toAddress = event.to;
var fromAddress = event.from;
var subject = event.subject;
var MailBody = event.mailBody;
var PDFHTML = event.PDFHTML;
var LabelHTML = event.LabelHtml;
var options = { format: 'Legal',"header": {
"height": "25mm",
}
}
pdf.convertHTMLString(LabelHTML, '/tmp/LabelDetails.pdf', function(err, res1) {
if (err)
{
console.log(err);
callback(err, false);
}
else
{
pdf.convertHTMLString(PDFHTML, '/tmp/DiagramDetails.pdf', function(err, res1) {
if (err)
{
console.log(err);
callback(null, false);
}
else
{
merge(['/tmp/LabelDetails.pdf','/tmp/DiagramDetails.pdf'],'/tmp/Final.pdf',function(err){
if(err)
{
console.log(err);
callback(null, false);
}
else
{
/*Send mail code */
callback(null, true);
}
});
}
});
}
});
};
var fs = require("fs");
var pdf = require('html-to-pdf');
var merge = require('easy-pdf-merge');
var nodemailer = require('nodemailer');
var path = require("path");
当我尝试将html字符串转换为PDF文件时,它会抛出错误EROFS:只读文件系统。
我的简单节点js代码完全正常。
在对此问题进行更多研究后,我发现AWS只将写入凭据提供给/ tmp文件夹。所以我应用了像/tmp/FileName.pdf这样的文件路径,但似乎仍然存在问题。