Запуск функции, как только 1-го числа месяца происходит без сторонней библиотеки в javascript (nodejs)? - PullRequest
0 голосов
/ 01 января 2019

Я хотел бы запустить функцию (создать документ в моем mongodb с помощью mongoose, но это не имеет большого значения) каждый 1-й числа нового месяца, предпочтительно, как только изменится дата.

То, что я хочу сделать, это иметь аналитику на полный месяц.Код уже ищет документ с идентификатором года / месяца.Я просто хочу автоматизировать процесс создания документа.

Я не хочу использовать стороннюю библиотеку, такую ​​как needle или cronjob, мы можем сделать это только с помощью setInterval и setTimeout?

1 Ответ

0 голосов
/ 01 января 2019

Конечно:

function runOnNextMonth(fn) {
  const first = new Date;
  first.setMonth(first.getMonth() + 1);
  first.setDate(1);
  first.setHours(0);
  first.setMinutes(0);
  first.setSeconds(1);
  setTimeout(function() {
    fn();
    runOnNextMonth(fn);
  }, first.getTime() - Date.now());
}
...