如何检查数据库是否已更新或不发送邮件

时间:2019-04-26 15:16:50

标签: javascript node.js promise nodemailer nedb

我正在尝试实现仅在数据写在数据库上时发送电子邮件的代码。因此,如果写入了数据,则该函数应返回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返回一个Promise,所以我正在尝试这样做以接收sendMail返回:

mail.sendMail(subscriber, consts.emailType.REMINDER)
             .then(info => console.log("mail was sent" + info.messageId))
             .catch(err => console.log("mail wasnt send:" + err));

因此,如何检查数据库是否已更新,返回数据库并在thencatch子句中对其进行处理

我试图弄清楚。

0 个答案:

没有答案