Реакция в 00:00, как сделать?
function cloneOrCreateDate(date) {
  return date instanceof Date ? new Date(date) : new Date();
}
function getMidnightDate(date) {
  const d = cloneOrCreateDate(date);
  d.setHours(0);
  d.setMinutes(0);
  d.setSeconds(0);
  d.setMilliseconds(0);
  return d;
}

function addDaysToDate(days, date) {
  const d = cloneOrCreateDate(date);
  d.setDate(d.getDate() + days);
  return d;
}

function timeOffset(d1, d2) {
  return Math.abs(d1 - d2);
}

setTimeout(() => {
  // логика в полночь
}, timeOffset(Date.now(), addDaysToDate(1, getMidnightDate())));
Очевидно, что каждую секунду следует проверять некоторое условие.
И скорее всего в setInterval.

Если говорить о простом.

Но можно юзать специальную библиотеку, честно признаюсь не юзал планировщик на ноде.
Но принципы планировщиков похожи.