一段时间后如何使用Node.js动态更新数据?

时间:2019-09-11 06:37:06

标签: node.js mongodb api express

假设当我按下GET请求时,响应来自服务器:

API响应

[
{
  id: 1
  status: "Pending",
  startedAt: "10:30",
  endsAt: "12:30"
},
 {
  id: 2
  status: "Pending",
  startedAt: "11:30",
  endsAt: "1:30"
 },
....
]

现在我想每隔1个小时将此状态字段更改为开始,然后完成

我该如何使用node.js做到这一点,什么应该是正确的实现方式。

2 个答案:

答案 0 :(得分:1)

您可以使用cron job

步骤1)npm i crontab --save
步骤2)npm i node-cron --save

现在进入您的index.js或将您的main js文件命名为node。输入以下命令。

const cron = require('node-cron');
const crontab = require('node-crontab');

crontab.scheduleJob("0 * * * * " , function(){
     //do something cool    
},{
    schedule: true,
    timezone: "Asia/kolkata"
});

以上函数每隔1小时运行一次,您可以在其中进行代码。

有关更多信息,请通过official Document

答案 1 :(得分:1)

您可以简单地使用setInterval在特定时间间隔后执行操作。

var yourData = [
  {
    id: 1
    status: "Pending",
    startedAt: "10:30",
    endsAt: "12:30"
  },
   {
    id: 2
    status: "Pending",
    startedAt: "11:30",
    endsAt: "1:30"
   },
  ....
  ]
async function updateData(){
  //Call your API and update the data
  yourData = await yourAPICall()
}

setInterval(updateData, 60 * 60 * 1000)