Я отправляю несколько электронных писем с моего сервера node.js и хочу показать прогресс в веб-интерфейсе о том, сколько писем было отправлено.
Я написал код, который отправлял ответ только после того, как каждое электронное письмо было отправлено, однако мне нужно уведомить интерфейс о прогрессе.
Насколько я знаю, я не могу отправить несколько ответов на один http-запрос, поэтому я немного заблудился здесь.
Мой обработчик запроса на электронную почту:
const send = async (req, res) => {
//parsing request body
const {user, recievers, subject, text} = req.body;
//Getting sender credentials from db
const user = await UserSettings.findOne({ user }, 'MAIL');
//creating nodemailer transporter
const transporter = nodemailer.createTransport({
service: user.MAIL.SERVICE,
auth: {
user: user.MAIL.USER,
pass: user.MAIL.PASSWORD,
},
});
//sending email to every reciever
recievers.forEach(reciever=> {
const mailOptions = {
from: user.MAIL.USER,
to: reciever,
subject,
text
};
return transporter.sendMail(mailOptions, (error, info) => {
if (!error) {
console.log(`Email sent: ${info.response}`);
} else {
console.log(error);
}
});
});
return res.sendStatus(204);
};