【发布时间】:2017-03-13 22:47:09
【问题描述】:
我使用 node.js 制作了一个简单的 Web 应用程序,并使用 heroku 托管它。主进程做了很多操作,其中之一是读取和写入带有 id 的文本文件。但是,当我尝试使用 nodemailer 将这个文件从不同的进程发送到我的电子邮件时,它会作为空白发送。该文件最初是空白的,但随后由主进程写入;主进程也从中读取文本,所以我知道问题不存在。你能告诉我为什么它不起作用吗?
编辑:我确定我发送的文件不是空的(我用文件的内容做 console.log)
主进程代码:
function handleSubscriptions(event){
var senderID = event.sender.id;
var recipientID = event.recipient.id;
var timeOfPostback = event.timestamp;
var payload = event.postback.payload;
console.log("Received postback for user %d and page %d with payload '%s' " +
"at %d", senderID, recipientID, payload, timeOfPostback);
if(payload == "iscrizione"){
fs.appendFile("./users.txt", senderID + ",", function (err) {
if (err) throw err;
console.log('The id was appended to file!');
});
var data = fs.readFile('./users.txt', function(err, data) {
if (err) throw err;
processData(String(data));
});
function processData(data){
var arr = data.split(",");
for(i = 0; i < arr.length - 1; i++){
var val = parseInt(arr[i]);
msg = "user number " + i + " :"+ val ;
console.log(msg)
}
}
sendMessage(senderID, "Complimenti, sei iscritto!");
}
}
发件人代码:
fs.readFile("./users.txt", function (err, data) {
var message = {
sender: email,
to: email,
subject: 'File user',
body: 'File in allegato',
attachments: [{'filename': 'users.txt', 'content': data}]
};
transporter.sendMail(message, function(error, info){
if (error) {
console.log('Error occurred');
console.log(error.message);
return;
}
console.log('Message 2 sent successfully!');
transporter.close();
});
});
【问题讨论】:
标签: node.js heroku fs nodemailer