2013-06-03 3 views
0

나는 매우 새로운 node.js에 익숙하다. 이제 간단한 node.js 애플리케이션을 만드는 단계를 수행했다. Here it is on githubNodejitsu while node.js app

나는 그러나 내가 바로 여기이 오류를 가지고, nodejitsu에 배포하는 터미널에서 명령 jitsu deploy을 실행하십시오 코드 파일이 잘못 될 수 있는지에 어떤 도움? 여기 Here is the code on git hub

가 표시되는 오류입니다 :

prompt: Is this ok?: (yes) yes 
info: Creating snapshot 0.0.0-5 
info  Uploading: [=============================] 100% 
info: Updating app test 
info: Activating snapshot 0.0.0-5 for test 
info: Starting app test 
error: Error running command deploy 
error: Nodejitsu Error (500): Internal Server Error 
error: There was an error while attempting to deploy the app 
error: 
error: Error spawning drone 
error: Script took too long to listen on a socket 
error: 
error: This type of error is usually a user error. 
error: Error output from Haibu: 
error: 
error: Error: Error spawning drone 
error:  at Object.onTimeout [as _onTimeout] (/root/haibu-orchestra/node_mod 
ules/haibu/lib/haibu/core/spawner.js:396:15) 
error:  at Timer.list.ontimeout (timers.js:101:19) 
help: For help with this error contact Nodejitsu Support: 
help:  webchat: <http://webchat.nodejitsu.com/> 
help:   irc: <irc://chat.freenode.net/#nodejitsu> 
help:  email: <[email protected]> 

답변

0

당신은 server.js 함수를 수출하고있어,하지만 실행하지 않습니다. start의 본체는 server.js 모듈 내부에서 최상위 코드로 작동하므로 nodejitsu가 응용 프로그램을 시작할 때 실행됩니다.

+0

감사합니다. –

+0

그의 수출은'index.js' 파일, 피터에서 호출되고 있습니다. 그의'scripts.start'는'node server.js'가 아니라'node index.js'입니다. – Sly

0

Nodejitsu는 배포가 시스템에서 얼마나 빨리 대기하는지 매우 까다 롭습니다. 배포가 실패로 간주되기 전에 배포 시작과 배포 끝 사이에 일정한 시간이 있습니다. 포트에서 너무 오랫동안 듣지 않으면이 오류가 발생합니다.

보다는 이미 경로와 그것에 handle을 통과하고 있기 때문에, 왜, index.js에 HTTP 소켓을 만든 다음뿐만 아니라 당신의 start 기능으로 전달하지 않는 현재 start 기능을 사용

? 예를 들어

, index.js에서 대부분의 가능성이 모든 문제를 해결할 것

var start = function (server, route, handle) { 
    function onRequest(request, response) { 
    /* Your request stuff here */ 
    } 
    server.on('request', onRequest); 
}; 

이 :

var http = require('http'), 
    server = http.createServer().listen(8080); 

start(server, router.route, handle); 

그런 다음, 오히려 server.js 파일에 http.createServer(onRequest).listen(8080)을 사용하는 것보다, 당신은 같은 것을 사용할 수 있습니다.