2015-10-06 2 views
1

Я создал новое приложение Node.js на Bluemix этим утром и загрузил шаблонный код. Я работал над этим на месте, а затем толкнул его. На Bluemix он отказывается начинать. Ошибка в соответствии с бревнами:Как исправить приложение Bluemix Node.js, которое не может принимать подключения

Instance (index 0) failed to start accepting connections 

Так что я Googled для этого, в каждом случае, когда я нашел результат, ответ был, что мое приложение пытается использовать определенный порт, вместо того, чтобы позволить Bluemix установить его.

Хорошо, но я устанавливаю хост/порт с точной коды шаблонные используют:

var appEnv = cfenv.getAppEnv(); 
// start server on the specified port and binding host 
app.listen(appEnv.port, function() { 
    // print a message when the server starts listening 
    console.log("server starting on " + appEnv.url); 
}); 

Так что, если это неверно, это означает, что код Bluemix сказал мне, чтобы загрузить себя неверно также, и я не могу себе представить, что это проблема.

+0

Raymond, не могли бы вы включить здесь вывод «cf logs -recent» для получения более подробной информации? –

+1

Это сообщение об ошибке также может появиться, если приложение просто не запускается. Я бы проверил, можете ли вы использовать «npm start» (или если вы передали в команде запуска, используйте это), чтобы запустить приложение локально. Выбранный фрагмент кода работает правильно; вы можете дважды проверить это, просто нажав исходный код стартера без изменений. –

ответ

5

Чтобы определить, виноват ли cfenv, я тестировал этот фрагмент кода с несколькими более сложными приложениями Node.js, которые у меня есть, и они отлично работают на Bluemix.

Это сообщение также может появиться, когда приложение, которое вы развернули в Bluemix, не запускается вообще. Вот несколько вещей, которые вы можете сделать для устранения неполадки приложения Node.js на Bluemix.

  1. Хвост в другом терминале при нажатии «cf logs ». Осмотрите журналы после того, как не удалось выяснить, не произошло ли что-то во время процесса постановки.
  2. Убедитесь, что ваша команда пуска в одном из двух рекомендуемых мест, scripts.start в package.json или в Procfile с web: node <start-script>.
  3. Убедитесь, что ваше приложение работает локально. Сначала (необязательно) создайте файл .cfignore с «/ node_modules» в нем, так что, когда вы нажимаете приложение на Bluemix, CF CLI не нажимает всю вашу папку node_modules (так как они будут установлены динамически). Затем уничтожьте каталог node_modules и сделайте npm install --production, за которым следует npm start (или ваша пользовательская команда запуска). Это то, что делает Bluemix при попытке запустить приложение, поэтому вам следует дважды проверить, что он работает локально.
  4. И, наконец, попробуйте поднять память, хотя это маловероятно, поэтому вы не можете запустить приложение.
+0

Ваш комментарий о журналах cf, а также о другом IBMer на Slack довел меня до такой степени, что я обнаружил, что я запутываю process.env. Я фактически переписывал весь объект, который мог бы объяснить нечетную проблему, с которой он не запускался. –

Смежные вопросы