【问题标题】:Nodejitsu while while starting node.js app启动node.js应用程序时的Nodejitsu
【发布时间】:2013-05-29 19:46:50
【问题描述】:

我是node.js 的新手,我只是按照步骤创建了一个简单的node.js 应用程序。 Here it is on github

我从终端运行命令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: <support@nodejitsu.com>

【问题讨论】:

    标签: node.js nodejitsu


    【解决方案1】:

    你的 server.js 正在导出一个函数,但它没有运行。只是 start 的主体直接在 server.js 模块中作为顶级代码运行,以便在 nodejitsu 启动应用程序时执行。

    【讨论】:

    • 他的导出正在index.js 文件中调用,Peter。他的scripts.startnode index.js,而不是node server.js
    【解决方案2】:

    Nodejitsu 对您的部署在系统上侦听的速度非常挑剔。在部署被视为失败之前,部署开始和部署结束之间有一定的时间范围。当它长时间不监听端口时,它最终会给您这个错误。

    与其使用您当前的start 函数,不如尝试在index.js 中创建您的HTTP 套接字,然后将它也传递给您的start 函数,因为您已经在传递路由和@987654324 @给它?

    例如在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);
    };
    

    这很可能会解决整个问题。

    【讨论】:

      猜你喜欢
      • 2013-07-19
      • 2014-03-17
      • 1970-01-01
      • 2015-08-18
      • 2013-05-25
      • 2014-02-27
      • 2015-03-12
      • 2013-01-20
      • 2015-05-16
      相关资源
      最近更新 更多