Nodejs节点调度npm抛出错误“;this.job.execute不是一个函数;

Nodejs node-schedule npm is throwing error "this.job.execute is not a function"

本文关键字:函数 一个 execute this npm 调度 节点 出错 Nodejs 错误 job      更新时间:2023-10-08

我是nodejs的新手,我已经编写了一个nodejs程序,并使用节点时间表每分钟对其进行调度。但在运行了一段时间并在控制台生成了几条日志后,nodejs抛出了this.job.execute is not a function 的错误

这是我正在使用的代码:

var nodeSchedule = require('node-schedule');
runJob();
function runJob(){
    console.log("start");
    nodeSchedule.scheduleJob('0 * * * * *',require('./prodModules.js'));
}

我得到的日志是:

C:'Users'1060641'Downloads'NodeJS HealthReport'Collector>node src'main'nodejs'collector_main.js
start
Connected
Ready
logged in as Super User
nfs_check running...
NFS Check completed
snapchart_check running...
C:'Users'1060641'node_modules'node-schedule'lib'schedule.js:177
    this.job.execute();
             ^
TypeError: this.job.execute is not a function
    at Job.invoke (C:'Users'1060641'node_modules'node-schedule'lib'schedule.js:177:14)
    at null._onTimeout (C:'Users'1060641'node_modules'node-schedule'lib'schedule.js:445:11)
    at Timer.listOnTimeout (timers.js:92:15)
C:'Users'1060641'Downloads'NodeJS HealthReport'Collector>

我不认为我的prodModules.js有什么问题,因为独立运行它运行得很好。计划正在引发错误。

请帮忙。

节点调度程序回调必须是一个函数。将您的runJob更改为以下内容:

function runJob() {
    console.log("start");
    nodeSchedule.scheduleJob('0 * * * * *', function () { 
        require('./prodModules.js');
    });
}

尝试重新导入"nodeschedule",我用新的导入运行了您的代码,它按预期工作。

要在windows上关闭导入cmd:>npm安装节点计划