Nodejitsu при запуске приложения node.js

Я очень новичок в node.jsЯ просто следовал инструкциям по созданию простого приложения node.js. Вот оно на github

Я управлял командой jitsu deploy из терминала, чтобы развернуть его на nodejitsuТем не менее, я получил эту ошибку прямо здесь, пожалуйста, помогите, что может быть не так с файлами кода? Вот код на 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>

2 ответа

Ваш сервер.js экспортирует функцию, но она не запускается. Просто тело твоего start Работайте как код верхнего уровня непосредственно внутри модуля server.js, чтобы он выполнялся, когда nodejitsu запускает ваше приложение.

Nodejitsu очень требователен к тому, как быстро ваши развертывания прослушивают систему. Между началом развертывания и окончанием развертывания существует определенный промежуток времени до того, как развертывание считается неудачным. Когда он не слушает порт так долго, он выдает эту ошибку.

Вместо того, чтобы использовать ваш текущий start функция, почему бы вам не попробовать создать свой сокет HTTP в index.js а затем передать его в свой start функции, так как вы уже проходите маршруты и handle к этому?

Например, в index.js:

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

start(server, router.route, handle);

Тогда вместо использования http.createServer(onRequest).listen(8080) в вашем server.js файл, вы можете использовать что-то вроде:

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

Это, скорее всего, решит всю проблему.

Другие вопросы по тегам