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);
};
Это, скорее всего, решит всю проблему.