在Express Express上创建计划作业

Twi*_*Gee 5 node.js express

我刚进入Express,遇到了一个问题。我有一个提供REST API的应用程序。一切正常。但我想使用节点计划(https://www.npmjs.com/package/node-schedule)添加计划的作业。我已经实现了这个模块:

var schedule = require('node-schedule');

var scheduler = {
    scheduleJob: function(monitor) {
        var job = schedule.scheduleJob('* * * * *', function(){
            monitor.check();
        });
        return job;
    }
}

module.exports = scheduler;
Run Code Online (Sandbox Code Playgroud)

在app.js中,由于发现了一个类似的堆栈溢出问题,因此在底部添加了以下内容。这对我不起作用:

app.on('listening', function () {
    console.log("App started, gathering monitors");
    var allMonitors = queries.getAllMonitorsInt();
    for (var i = 0; i < allMonitors.length; i++) {
        console.log("Monitor found: " + allMonitors[i].name);
        shdlr.scheduleJob(allMonitors[i]);
    }
});
Run Code Online (Sandbox Code Playgroud)

我什至没有收到“应用已启动...”日志消息。

我是否以正确的方式进行操作?还是我偏离了目标?

Kon*_*zov 5

调度程序应放在app.listen回调内部,如下所示:

app.listen(3000, function () {
  console.log("App started, gathering monitors");
  var allMonitors = queries.getAllMonitorsInt();
  for (var i = 0; i < allMonitors.length; i++) {
      console.log("Monitor found: " + allMonitors[i].name);
      shdlr.scheduleJob(allMonitors[i]);
  }
});
Run Code Online (Sandbox Code Playgroud)

Express不支持listening活动,请参阅问题