带有Node Js的Heroku调度器

我已经在这里跟着这个答案,它的工作原理,但是当我试图打电话给我的应用程序没有任何反应 我有我的主要functionapp.js调用

function start() { ... } 

这是我的任务存储在bin,我知道它的工作时,我打电话:

 #! /app/.heroku/node/bin/node function mytask() { start(); } initScrape(); process.exit(); 

之后: heroku run init mytask

 λ heroku run init_scrape Running mytask on dyno1... up, run.5157 /app/bin/mytask:3 start(); ^ ReferenceError: start is not defined at mytask (/app/bin/mytask:3:3) at Object.<anonymous> (/app/bin/mytask:5:1) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422:10) at Module.load (module.js:357:32) at Function.Module._load (module.js:314:12) at Function.Module.runMain (module.js:447:10) at startup (node.js:148:18) at node.js:405:3 

您需要从定义的位置开始导出,并且您的脚本需要定义具有start()的文件。 否则,它会怎么知道在哪里find它?

所以你可能需要修改你的app.js并且说module.exports = start 。 然后在mytask文件中执行以下操作:

 #! /app/.heroku/node/bin/node var start = require('./app.js'); function mytask() { start(); } initScrape(); process.exit();