Я пытаюсь реализовать код для отправки электронного письма, только если данные записаны в базу данных.Итак, если данные записаны, функция должна вернуть true, и поэтому я отправляю письмо.
Это функция send mail
:
module.exports = {
sendMail: function(subscriber, type) {
transporter.sendMail(mailOptions(subscriber, type), function (err, info) {
if (err) {
throw err;
}else if(type == consts.emailType.REINSCRIPTION){
db.update({_id:subscriber._id}, { $set: { subscribed: true} }, {}, err => {
console.log('Reinscription mail sent!', info);
})
} else if(type == consts.emailType.REMINDER) {
db.update({ _id: subscriber._id }, { $set: { reminder: true } }, {}, err => {
console.log('Reminder mail sent!', info);
})
} else if(type == consts.emailType.FEEDBACK) {
db.update({ _id: subscriber._id }, { $set: { feedback: true } }, {}, err => {
console.log('Feedback mail sent! ', info);
})
}
})
}
Если я не ошибаюсь, transporter
вернуть обещание, поэтому я пытаюсь сделать это, чтобы получить возврат sendMail:
mail.sendMail(subscriber, consts.emailType.REMINDER)
.then(info => console.log("mail was sent" + info.messageId))
.catch(err => console.log("mail wasnt send:" + err));
Итак, как я могу проверить, была ли база данных обновлена или нет, чтобы вернуть ее и обработатьthen
или catch
пункт
Я пытался быть ясным.