2016-06-21 2 views
2

나는이 대답 here을 따라 왔으며 작동하지만 내 애플리케이션을 호출하려고하면 아무 일도 일어나지 않습니다.노드 Js가있는 Heroku 스케줄러

#! /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          

답변

2

나는이 나의 작업은 내가 내가 전화 할 때 작동합니다 알고있는 빈에 저장된 app.js 내 주요 기능은

function start() { ... } 

라는이 정의 된 위치에서 시작을 내보내고 스크립트에서 start()이 정의 된 파일을 필요로해야합니다. 그렇지 않으면 어디서 어떻게 찾을 수 있을까요?

아마도 app.js를 수정하고 module.exports = start라고해야합니다. 그런 다음 mytask 파일에서 다음을 수행합니다.

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