2013-06-03 63 views
0

我對node.js很新,我只是按照這些步驟來創建一個簡單的node.js應用程序。 Here it is on githubNodejitsu while while start node.js app

我跑的命令jitsu deploy從終端將其部署到nodejitsu,但是我得到這個錯誤就在這裏,請上什麼可能是錯誤的代碼文件的任何幫助嗎? 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'文件中被調用,Peter。他的'scripts.start'是'node index.js',而不是'node server.js'。 – Sly

0

Nodejitsu對部署在系統上偵聽的速度非常挑剔。在部署被認爲是失敗之前,部署的開始和部署結束之間存在一定的時間框架。當它長時間不在端口上監聽時,它最終會給你這個錯誤。

而不是使用當前的start功能,你爲什麼不嘗試建立在index.js你的HTTP插座,然後將它傳遞到您的start功能爲好,因爲你已經傳遞路線和handle呢?

例如,在index.js

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

start(server, router.route, handle); 

之後,而不是在server.js文件中使用http.createServer(onRequest).listen(8080),您可以使用類似:

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

這將最有可能解決整個問題。