我在哪里保存使用setTimeout调用的函数?

时间:2018-03-24 12:31:54

标签: node.js model-view-controller mongoose

我正在学习NodeJS,并且正在努力坚持使用MVC架构。我在设置循环上放置那些从外部源更新数据的函数的位置上卡住了,延迟时间为30秒左右。

示例:我构建了一个应用程序,在这种情况下从API Orders获取数据,并将其存储在数据库中。我可以在本地向我的数据库添加订单,我希望订单数据库与之前提到的外部源同步,每30秒一次。

我的模型目录将包含Order.js,其中包含订单模式,它将通过Mongoose连接到MongoDB。我的控制器将具有用于CRUD操作的API端点。

该功能从哪里刷新服务器的数据?在控制器?然后我会导出该函数,以便我可以在我的app.js(或者我用来启动应用程序的任何东西)中设置更新数据库的循环?

1 个答案:

答案 0 :(得分:0)

我建议使用像node-cron之类的东西为你处理setTimeout。它为您提供了类似cron语法的优势,可以按计划运行您的作业,并在您的节点应用程序运行时运行。我会将这些作业放在带有节点cron作业的单独目录中。然后,单个节点cron作业可以导入MongoDB模型。然后,您的主应用程序可以从cronjobs dir中导入index.js或类似内容,它会导入所有节点cron作业,以便在应用程序启动时引导它们。