我已经按照这个答案here了,但是当我尝试拨打我的应用时没有任何反应。我在app.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
答案 0 :(得分:3)
您需要从定义它的位置开始导出,并且您的脚本需要要求定义start()
的文件。否则怎么知道在哪里找到它?
所以你可能需要修改你的app.js然后说module.exports = start
。然后在mytask
文件中执行此操作:
#! /app/.heroku/node/bin/node
var start = require('./app.js');
function mytask() {
start();
}
initScrape();
process.exit();