Node.js: простое приложение не работает на Heroku

мы написали базовое приложение node.js и яНам удалось развернуть его на Heroku без каких-либо проблем. Я'мы создали мойpackage.json а такжеPROCFILEТем не менее, из журналов я вижу, что нет запущенных процессов, поэтому не может получить никакого ответа. В чем может быть проблема?

PS:Я не хочу использоватьэкспресс фреймворк

Мой код:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();

  console.log("I am working");
}).listen(8888);

Мой пакет.json:

{
  "name": "node-example",
  "version": "0.0.1",
  "dependencies": {
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

Журналы:

2012-10-22T12:36:58+00:00 heroku[slugc]: Slug compilation started
2012-10-22T12:37:07+00:00 heroku[slugc]: Slug compilation finished
2012-10-22T12:40:55+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-10-22T12:50:44+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=

Ответы на вопрос(4)

Решение Вопроса

Вы масштабировали приложение heroku?

$ heroku ps:scale web=1

Это обязательный шаг.1 количество процессов, которые вы хотите создать для своего приложения.

 Saras Arya14 авг. 2016 г., 13:41
Это закончилось 2 часа разочарования для меня ... Спасибо
 Kirk Strobeck04 апр. 2016 г., 19:59
Это неу меня не получилось, но сделал еще один шаг, посмотриstackoverflow.com/a/34749183/537998
 connorbode19 июн. 2014 г., 19:14
Это просто закончилось 30 минут разочарования. Спасибо :)
 purgatory10112 апр. 2014 г., 06:29
Вы также можете сделать это на панели инструментов Heroku, зайдя в приложение.s Ресурсы и убедитесь, что у вас есть как минимум 1 Dyno. (Кроме того, проблема прослушивания портов часто возникает следующим образом:stackoverflow.com/a/13013189/1310765).

от

.listen(8888)

в

.listen(process.env.PORT || 8888)
 hunterloftis31 дек. 2016 г., 04:39
Я управляю платформой узла в Heroku. По иронии судьбы, этот самый низкий ответ правильный. Принятый и получивший наибольшее количество голосов ответ поможет, только если выранее вы масштабировали ваш веб-процесс до нуля, и это не решит проблему, если не последует этот ответ.
 Maude30 авг. 2018 г., 03:08
Это должен быть принятый ответ. Паутина ps: scale была предоставлена в Heroku 'Документация и, следовательно, является основным шагом. Но этот ответ здесь не был дан нигде и, скорее всего, вызывает проблемы для многих людей (включая меня)

которые я должен был сделать (ненужно масштабировать или использовать Express) ..

Создайте Procfile в корневом каталоге (файл с буквальным названием Procfile, без расширения).

Внутри Procfile, введите:

web: node server.js

Добавьте скрипт и движок в package.json

"scripts": {
        "start": "node server.js"
}

"engines": {
        "node": "8.9.3"
}

Обновление порта в server.js

var port = process.env.PORT || 8080;

И почему..

Чтобы явно объявить, какую команду нужно выполнить, чтобы запустить ваше приложение. Heroku ищет Procfile с указанием типов ваших процессов

Для сценария, если во время процесса сборки в корневом каталоге отсутствует Procfile, ваш веб-процесс будет запущен с помощью команды npm start. Для движка, чтобы указать версию узла, которая соответствует времени выполненияВы разрабатываете и хотите использовать на Heroku.

Heroku уже назначает вашему приложению порт и добавляет его в env, чтобы вы моглиt установить порт на фиксированный номер.

Ресурсы:

https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction

https://devcenter.heroku.com/articles/troubleshooting-node-deploys

https://devcenter.heroku.com/articles/deploying-nodejs

внутри вашего Procfile? Это соответствует имени вашего приложения?

$ ls
app.js Procfile
$ cat Procfile
web: node app$
$

Ваш ответ на вопрос