Node.js 在nodejs中一周后如何发送电子邮件

Node.js 在nodejs中一周后如何发送电子邮件,node.js,express,cron,Node.js,Express,Cron,我创建了一个脚本:当一个用户注册我们的应用程序时,我将发送一封欢迎电子邮件,然后我希望在另一封邮件发送之后 注意:现在cron作业每分钟运行一次,稍后我将对其进行更改 var job = new CronJob('* * * * *', function() { console.log('Cron Job is happen on',Date()); emailSend() }, null, true, ''); function emailSend(){ Si

我创建了一个脚本:当一个用户注册我们的应用程序时,我将发送一封欢迎电子邮件,然后我希望在另一封邮件发送之后

注意:现在cron作业每分钟运行一次,稍后我将对其进行更改

var job = new CronJob('* * * * *', function() {
    console.log('Cron Job is happen on',Date());
    emailSend()
   
  }, null, true, '');

function emailSend(){
  SingUpDate = something
  comapredate = today-7
  if(comparedate == signupdate){
   sendEmail()
   }
  else{
     return false
   }

}

我想知道如何在一周后停止cron。

您可以让emailSend功能删除自己的cron作业:

var job = new CronJob('* * * * *', function () {
  console.log('Cron Job will happen on', Date())
  emailSend()
}, null, true, '')
// you will need to start the job:
job.start()

function emailSend () {
  SingUpDate = something
  comapredate = today-7
  if (comparedate == signupdate) {
    sendEmail()
    // and then stop it here:
    job.stop()
  } else {
    return false
  }
}
或者,您可以将其安排在所需的特定日期:

const date = new Date();
date.setDate(date.getDate() + 7)
const job = new CronJob(date, () => {
  console.log(`Scheduled job for ${date} running at ${new Date()}`)
  emailSend()
}, null, true, '')
job.start()
好的,如果我将使用作业.stop(),那么下周我想再次开始作业,因为每周都会有新用户注册,那么如何再次开始?
job.start()
再次,但是如果您下次仍要运行它,您可以离开每周cron计划,调用
job.start()
一次,不用担心停下来又重新开始。