0
node.js로 간단한 웹 응용 프로그램을 만들고 heroku로 호스팅했습니다. 주 프로세스는 많은 작업을 수행하며 그 중 하나는 ID를 사용하여 텍스트 파일을 읽고 쓰는 작업입니다. 그러나이 파일을 다른 프로세스에서 nodemailer를 사용하여 전자 메일로 보내려고하면 공백으로 전송됩니다. 파일은 처음에는 공백이지만 메인 프로세스가 작성합니다. 주 프로세스가 텍스트를 읽었으므로 문제가 없다는 것을 알고 있습니다. 왜 작동하지 않는지 말해 줄 수 있어요?Nodemailer - 비어있는 파일이 공백으로 전송되지 않았습니다.
편집 :
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!");
}
}
보낸 코드 : 저는 파일이 비어 있지 보낼 때
메인 프로세스 코드 (i는 파일의 내용 CONSOLE.LOG 않음) 것을 확실히 알고 :
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();
});
});
코드로 질문을 업데이트했습니다. 필자가 작성한 것처럼, console.log로 출력하기 때문에 파일이 비어 있지 않다는 것을 안다. –