Nodejs не запустится на героку после развертывания - PullRequest
0 голосов
/ 26 апреля 2020

Я вроде noob ie до NodeJs, но я попытался опубликовать sh приложение, которое работает локально на heroku.но оно выдает ошибки H10 после загрузки.

at=error code=H10 desc="App crashed" method=GET path="/" host=secure-shelf-30086.herokuapp.com request_id=275885c2-48f1-410d-8651-e6aa4311f65b fwd="81.49.127.42" dyno= connect= service= status=503 bytes= protocol=https
at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=secure-shelf-30086.herokuapp.com request_id=f29afde7-6e30-4b7f-b22f-5b01599b6cdf fwd="81.49.127.42" dyno= connect= service= status=503 bytes= protocol=https

Вот мой package.json

{
  "name": "App name",
  "version": "0.0.1",
  "description": "App desc",
  "main": "app.js",
  "engines": {
    "node": "v14.0.0",
    "npm": "6.x"
  },
  "scripts": {
    "start": "node app.js"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/nickname/xxx-xxx.git"
  },
  "author": "nickname",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/nickname/xxx-xxx/issues"
  },
  "homepage": "https://github.com/nickname/xxx--xxx#readme",
  "dependencies": {
    "ent": "^2.2.0",
    "express": "^4.17.1",
    "simple-ssh": "^1.0.0",
    "socket.io": "^2.3.0"
  }
}

Начало моего app.js файла

var app = require('express')(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server),
    ent = require('ent');

var SSH = require('simple-ssh');

Из-за моего исследования других сообщений я добавил запись Procfile в свой репозиторий, например: :

web:npm start

И мой конфиг есть в моем приложении heroku

NODE_ENV:           production npm start
NODE_MODULES_CACHE: false

Может ли это быть из-за отсутствия файла favicon ???

У меня все уши чтобы найти способ запустить это приложение на герою (я запускаю его по бесплатному плану)

Спасибо

1 Ответ

1 голос
/ 26 апреля 2020

убедитесь, что вы используете (process.env.PORT) рядом с обычным номером порта

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
    console.log(`Our app is running on port ${ PORT }`);
});
...