【问题标题】:Send emails to multiple subscribed clients in node js在节点 js 中向多个订阅客户端发送电子邮件
【发布时间】:2020-02-29 19:58:01
【问题描述】:

我在本地系统上有一个节点 js 站点,用户可以在其中收到关于热门文章或通过电子邮件发布的通知。我的代码如下:-

app.get('/:articlename', (req, res)=>{
conn.query(`SELECT views,isAlreadySent FROM article_table WHERE article_name='${req.params.articlename}'`, (err, results, fields)=>{
// if views greater then 5000 views and isAlreadySent is false then send email to subscribed user from database
    })
});

上面的代码很长,我向你们展示的是较短的版本。一切正常。我的代码是,当任何用户查看任何文章时,它都会触发电子邮件发送方法,如果该文章的浏览量超过 5000,那么它的电子邮件将发送给所有订阅用户,但订阅用户可能有数千个,所以我如何向所有订阅用户发送电子邮件不落后于当前观众的用户

我想让用户像 pinterest 一样被通知,媒体通过邮件通知数百万用户

我的意思是当任何用户请求文章页面时,一段代码将检查视图,如果视图大于某个值,则将向多个用户发送一封电子邮件。用户数量可能很大,如果我在用户请求文章时发送电子邮件,那么该用户可能会出现异常延迟。我希望如果视图大于某些东西,那么它应该将任何布尔值发布到另一个程序,并且该程序应该在不打扰用户的情况下通过电子邮件发送给幕后的所有人,或者它可以通过任何其他技巧来完成,请告诉

【问题讨论】:

  • 这能回答你的问题吗? Sending emails in Node.js?
  • 不,我的问题不同。这不是重复的人
  • 您的意思是,在将电子邮件发送给所有订阅者之前,您的视图不会被呈现?
  • 我的意思是当任何用户请求文章页面时,一个代码块将检查视图,如果视图大于某个值,那么将向多个用户发送一封电子邮件。用户数量可能很大,如果我在用户请求文章时发送电子邮件,那么该用户可能会出现异常延迟。我希望如果视图大于某些东西,那么它应该将任何布尔值发布到另一个程序,并且该程序应该通过电子邮件发送给幕后的所有人而不会打扰用户,或者它可以通过任何其他技巧来完成,请告诉
  • @Mr.Explorerexplorer 对不起,我误会了,我以为你问的是关于发送电子邮件的问题。是的,你是对的,你需要做其他事情来为你做这件事,this post 应该给你一些选择

标签: javascript node.js express gmail nodemailer


【解决方案1】:

先渲染视图,然后发送电子邮件。

app.get('/:articlename', (req, res)=>{
  // DO YOUR STUFF
  // Render the article
  res.render('view');

  // Now process email stuff
  conn.query(`SELECT views,isAlreadySent FROM article_table WHERE article_name='${req.params.articlename}'`, (err, results, fields)=>{
    // if views greater then 5000 views and isAlreadySent is false then send email to subscribed user from database
    // SEND EMAIL HERE.
  });
});

【讨论】:

    【解决方案2】:

    我得到了答案。 我可以制作另一个与该网站不同的程序,该程序将在后台运行,它将检查超过 5000 次未邮寄的文章,并将其通过电子邮件发送给订阅用户。 但是我还有一个问题,我们可以在 AWS 中运行后台进程吗?

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 2019-12-08
      • 2020-06-11
      • 2021-03-27
      • 2022-01-13
      • 1970-01-01
      • 2021-05-23
      • 2012-07-07
      相关资源
      最近更新 更多