2016-03-31 31 views
0

"this.job.execute bir işlev değil" hatası atıyor ve ben bir nodejs programı yazdım ve düğüm-zamanlama kullanarak bunu her dakika zamanlama. BuradaNodejs düğüm-zamanlama npm Ben nodejs yeniyim

this.job.execute is not a function kullanıyorum kodu olduğunu ancak bir süre çalışan ve konsoldan günlükleri bir çift oluşturduktan sonra, atar nodejs hatası: Ben alıyorum

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

runJob(); 

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

} 

günlükleri geçerli:

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> 

Ben onun koşu cezası standalone çalışan beri benim prodModules.js ile yanlış bir şey olduğunu düşünmüyorum. Zamanlama, hata atıyor.

Lütfen

Lütfen yardım edin.

+0

, böylece github sorunları göz atın: Böyle bir şey için runJob değiştirin . İlk önce nereye bakacağım. – jmugz3

+0

Eminseniz '(' ./ prodModules.js')' gerektiren ne yaptığını sanıyorsun döndürür? ve 'programJob' ikinci bir parametre olarak ne bekliyor? –

+0

@ Kevin-B: haklıydın. Bir işlevde prodModules.js saran ve prodModules bir işlev değil hata atma neden js dosyasını çağırarak, şu yoktu. Bu yüzden bir export.myFunc = function() {} içinde prodModules.js bütün kod sarılmış ve onun artık iyi çalışıyor. Teşekkürler Kevin için ipucu :) – aiman

cevap

1

deneyin yeniden içe 'düğüm-zamanlama' Ben yeni ithalat kodunuzu koştum ve beklendiği gibi çalışır. cmd pencerelerde aşağı ithalat için

:> npm düğüm-zamanlayıcı geri arama fonksiyonu olmalıdır düğüm-zamanlama

0

yükleyin. Eğer kütüphane ile bir hata olduğunu düşünüyorsanız

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