如何编写 csv 文件并使用 nodemailer 发送?与节点

How can I write a csv file and send it with nodemailer? with nodejs

我想写一个csv文件,然后用nodemailer作为附件发邮件。 我有这个代码:

      const csvWriter = createCsvWriter({
        path: 'out.csv',
        header: [
          {id: 'name', title: 'Name'},
          {id: 'desc', title: 'Description'},
          {id: 'image', title: 'Image'}
        ]
      });
      csvWriter
        .writeRecords(allAds)
        .then(()=> console.log('The CSV file was written successfully'));

如何将文件作为附件上传到 nodemailer?

根据文档,nodemailer 支持不同的设置方式attachments。所以一种方法是:

csvWriter
.writeRecords(allAds)
.then(() => {    
    let message = { 
        // ... message details   
        attachments: [{
                filename: 'csv-data.csv',
                path: '/path/to/out.csv' // stream this file
            }
        };
        // ... code for sending message
    });

还有一件事 - 如果您不一定需要将 csv 文件写入文件(并且它不是太大),您可以只使用 csv-library 中的 createObjectCsvStringifier 并使用结果字符串。这将加快速度,因为您不需要从文件中 write/read。