【发布时间】:2016-07-20 02:34:43
【问题描述】:
我是 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 没有任何问题,因为它独立运行它运行良好。
调度正在抛出错误。
请帮忙。
【问题讨论】:
-
如果您认为这是库的错误,请查看 github 中的问题。那是我首先要看的地方。
-
您确定
require('./prodModules.js')会返回您认为的结果吗?这是scheduleJob期望的第二个参数吗? -
@Kevin-B :你是对的。我没有将 prodModules.js 封装在一个函数中,并调用 js 文件,这就是为什么它会抛出 prodModules 不是函数的错误。因此,我将 prodModules.js 中的整个代码包装在 export.myFunc=function(){} 中,现在它可以正常工作了。感谢凯文的提示:)
标签: javascript node.js express npm