首页 > 解决方案 > 使用 javascript 编写在午夜后运行的代码/查询

问题描述

我只是想问一个关于 MongoDB 和 javascript(express js)的简单问题。

以下是我的要求:

我正在尝试为电影和连续剧创建后端服务。我创建了大部分基本路线和功能。我想从数据库中挑选一部电影作为“今日电影”的字幕。

我的功能:

function filterFilmsForImbd(films,imbd){
    let filmChances = [];
    films.filter(film=>{
        if(film.imbdScore >= imbd){
            filmChances.push(film);
        };
    });
    return filmChances;
};

//Movie Of The Day
function movieOfTheDay(films) {
    const date = new Date();
    if (date.getHours() >= 0) {
        let arr = filterFilmsForImbd(films,7)
        let numberOfFilmChances = arr.length;
        let randomFilmPicker = Math.floor(Math.random() * numberOfFilmChances);
        return arr[randomFilmPicker]//returns object (film object)
    };
};

//Recommended Films
function recommendedMovies(films){
   return  filterFilmsForImbd(films,5);
};

我编写了一个可以在午夜(00:00)之后运行的函数,但是当我刷新页面时,它会继续获取随机数据。

如何创建一个每天只能随机选择一次电影的函数?

你想让我用我的路线扩展我的问题吗?让我知道。

标签: javascriptmongodbexpress

解决方案


对于 nodejs,一个很好的包是node-cron

午夜后运行一个函数将是

import cron from 'node-cron';
 
cron.schedule('0 0 0 * *', () => {
  console.log('running a task at midnight');
});

推荐阅读