Nodejs node-schedule npm抛出错误“this.job.execute不是函数”

时间:2016-03-31 14:49:32

标签: javascript node.js express npm

我是nodejs的新手,我编写了一个nodejs程序,并使用node-schedule每分钟安排一次。但是在运行一段时间并在控制台生成几个日志之后,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没有任何问题,因为它独立运行它运行良好。 调度会引发错误。

请帮忙。

2 个答案:

答案 0 :(得分:1)

尝试重新导入' node-schedule',我使用全新导入运行您的代码,它按预期工作。

要在Windows cmd上向下导入:> npm install node-schedule

答案 1 :(得分:1)

node-scheduler回调必须是一个函数。 将runJob更改为以下内容:

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