Node.js:如何在服务器初始化时运行一个特殊的函数

Node.js : How to run a special function as server starts as a initialization?

本文关键字:一个 函数 运行 js 初始化 服务器 Node      更新时间:2023-09-26

我使用Express框架,我有这个功能,我想在服务器启动后每隔一段时间运行它:

setTimeout(function () {
    console.log('timeout completed');
}, 1000);

所以我把这段代码放在Express.js Framework的初始文件App.js中,但它只运行了两次,问题在哪里?我该如何解决?

setTimeout函数在该时间量完成后仅运行一次,在你的情况下是1秒(1000毫秒)。

相反,你可能想使用setInterval,它做同样的事情,只是在你告诉它之前不会停止

这里有一个例子:

var max = 3;
var i = 0;
var timer = setInterval(function(){
   if(i === max){
      // stop the timer from looping.
      clearInterval(timer);
   }else{
      i++;
   }   
},1000);

看起来您正在描述一种cron类型的作业,为什么不使用许多节点crons模块中的任何一个呢。

https://www.npmjs.com/package/node-cron

看看,非常直接。