Невозможно разместить приложение node.js на heroku. Отображается ошибка приложения - PullRequest
0 голосов
/ 06 августа 2020

Метод прослушивания

let port = process.env.PORT;
if (port == null || port == "") 
{port = 3000; }
app.listen(port);

app.listen(port, function() {
  console.log("Server has started successfully!");
});

Procfile

web: node app.js

Пакет. json

{
  "name": "todolist-v1",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "engines": {
    "node": "12.18.0"
  },
  "dependencies": {
    "body-parser": "^1.18.3",
    "ejs": "^2.6.1",
    "express": "^4.16.3",
    "lodash": "^4.17.19",
    "mongoose": "^5.9.26"
  }
}

После развертывания приложения на heroku

Это отображается, когда я посещаю указанный адрес в моем терминале

После регистрации ошибки в терминале

$ heroku logs --tail

2020-08-06T17:58:14.031722+00:00 app[api]: Initial release by user saadahmad728@gmail.com
2020-08-06T17:58:14.031722+00:00 app[api]: Release v1 created by user saadahmad728@gmail.com
2020-08-06T17:58:14.344269+00:00 app[api]: Enable Logplex by user saadahmad728@gmail.com
2020-08-06T17:58:14.344269+00:00 app[api]: Release v2 created by user saadahmad728@gmail.com
2020-08-06T18:27:53.000000+00:00 app[api]: Build started by user saadahmad728@gmail.com
2020-08-06T18:28:08.541198+00:00 app[api]: Deploy 08926525 by user saadahmad728@gmail.com
2020-08-06T18:28:08.541198+00:00 app[api]: Release v3 created by user saadahmad728@gmail.com
2020-08-06T18:28:08.555631+00:00 app[api]: Scaled to web@1:Free by user saadahmad728@gmail.com
2020-08-06T18:28:09.000000+00:00 app[api]: Build succeeded
2020-08-06T18:28:12.043887+00:00 heroku[web.1]: Starting process with command `node app.js`
2020-08-06T18:28:15.554606+00:00 app[web.1]: events.js:292
2020-08-06T18:28:15.554621+00:00 app[web.1]: throw er; // Unhandled 'error' event    
2020-08-06T18:28:15.554622+00:00 app[web.1]: ^
2020-08-06T18:28:15.554622+00:00 app[web.1]:
2020-08-06T18:28:15.554622+00:00 app[web.1]: Error: listen EADDRINUSE: address already in use :::43074
2020-08-06T18:28:15.554623+00:00 app[web.1]: at Server.setupListenHandle [as _listen2] (net.js:1313:16)
2020-08-06T18:28:15.554623+00:00 app[web.1]: at listenInCluster (net.js:1361:12)     
2020-08-06T18:28:15.554624+00:00 app[web.1]: at Server.listen (net.js:1447:7)        
2020-08-06T18:28:15.554624+00:00 app[web.1]: at Function.listen (/app/node_modules/express/lib/application.js:618:24)
2020-08-06T18:28:15.554625+00:00 app[web.1]: at Object.<anonymous> (/app/app.js:146:5)
2020-08-06T18:28:15.554625+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1138:30)
2020-08-06T18:28:15.554626+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
2020-08-06T18:28:15.554626+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:986:32)
2020-08-06T18:28:15.554626+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:879:14)
2020-08-06T18:28:15.554627+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
2020-08-06T18:28:15.554627+00:00 app[web.1]: at internal/main/run_main_module.js:17:47
2020-08-06T18:28:15.554628+00:00 app[web.1]: Emitted 'error' event on Server instance at:
2020-08-06T18:28:15.554628+00:00 app[web.1]: at emitErrorNT (net.js:1340:8)
2020-08-06T18:28:15.554629+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:84:21) {
2020-08-06T18:28:15.554629+00:00 app[web.1]: code: 'EADDRINUSE',
2020-08-06T18:28:15.554629+00:00 app[web.1]: errno: 'EADDRINUSE',
2020-08-06T18:28:15.554630+00:00 app[web.1]: syscall: 'listen',
2020-08-06T18:28:15.554630+00:00 app[web.1]: address: '::',
2020-08-06T18:28:15.554631+00:00 app[web.1]: port: 43074
2020-08-06T18:28:15.554631+00:00 app[web.1]: }
2020-08-06T18:28:15.643665+00:00 heroku[web.1]: Process exited with status 1
2020-08-06T18:28:15.719470+00:00 heroku[web.1]: State changed from starting to crashed
2020-08-06T18:28:15.721915+00:00 heroku[web.1]: State changed from crashed to starting
2020-08-06T18:28:18.063014+00:00 heroku[web.1]: Starting process with command `node app.js`
2020-08-06T18:28:20.963100+00:00 app[web.1]: events.js:292
2020-08-06T18:28:20.963109+00:00 app[web.1]: throw er; // Unhandled 'error' event
2020-08-06T18:28:20.963110+00:00 app[web.1]: ^
2020-08-06T18:28:20.963110+00:00 app[web.1]:
2020-08-06T18:28:20.963110+00:00 app[web.1]: Error: listen EADDRINUSE: address already in use :::131252020-08-06T18:28:20.963111+00:00 app[web.1]: at Server.setupListenHandle [as _listen2] (net.js:1313:16)
2020-08-06T18:28:20.963111+00:00 app[web.1]: at listenInCluster (net.js:1361:12)2020-08-06T18:28:20.963111+00:00 app[web.1]: at Server.listen (net.js:1447:7)
2020-08-06T18:28:20.963111+00:00 app[web.1]: at Function.listen (/app/node_modules/express/lib/application.js:618:24)
2020-08-06T18:28:20.963112+00:00 app[web.1]: at Object.<anonymous> (/app/app.js:146:5)
2020-08-06T18:28:20.963112+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1138:30)2020-08-06T18:28:20.963112+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
2020-08-06T18:28:20.963113+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:986:32)2020-08-06T18:28:20.963117+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:879:14)
2020-08-06T18:28:20.963118+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)2020-08-06T18:28:20.963118+00:00 app[web.1]: at internal/main/run_main_module.js:17:47
2020-08-06T18:28:20.963118+00:00 app[web.1]: Emitted 'error' event on Server instance at:2020-08-06T18:28:20.963118+00:00 app[web.1]: at emitErrorNT (net.js:1340:8)
2020-08-06T18:28:20.963119+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:84:21) {2020-08-06T18:28:20.963119+00:00 app[web.1]: code: 'EADDRINUSE',
2020-08-06T18:28:20.963119+00:00 app[web.1]: errno: 'EADDRINUSE',2020-08-06T18:28:20.963119+00:00 app[web.1]: syscall: 'listen',
2020-08-06T18:28:20.963119+00:00 app[web.1]: address: '::',2020-08-06T18:28:20.963120+00:00 app[web.1]: port: 13125
2020-08-06T18:28:20.963120+00:00 app[web.1]: }2020-08-06T18:28:21.012655+00:00 heroku[web.1]: Process exited with status 1
2020-08-06T18:28:21.056282+00:00 heroku[web.1]: State changed from starting to crashed2020-08-06T18:28:29.979419+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=glacial-garden-21504.herokuapp.com request_id=20e2dc90-d336-4df4-bf85-921f061bc1c8 fwd="112.79.249.195" dyno= connect= service= status=503 bytes= protocol=https
2020-08-06T18:28:30.848729+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=glacial-garden-21504.herokuapp.com request_id=f2e74a20-48ae-4dfc-bffb-ef19fd6a3d20 fwd="112.79.249.195" dyno= connect= service= status=503 bytes= protocol=https
2020-08-06T18:41:35.920695+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=glacial-garden-21504.herokuapp.com request_id=f9d2e233-529d-4b69-993c-72d1cb0a07f0 fwd="112.79.249.195" dyno= connect= service= status=503 bytes= protocol=https
2020-08-06T18:41:36.396586+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=glacial-garden-21504.herokuapp.com request_id=2b55782b-9c16-4577-a425-2197e1d089c3 fwd="112.79.249.195" dyno= connect= service= status=503 bytes= protocol=https
2020-08-06T18:49:42.523761+00:00 heroku[web.1]: State changed from crashed to starting
2020-08-06T18:49:45.975358+00:00 heroku[web.1]: Starting process with command `node app.js`
2020-08-06T18:49:49.958428+00:00 heroku[web.1]: Process exited with status 1
2020-08-06T18:49:50.010996+00:00 heroku[web.1]: State changed from starting to crashed2020-08-06T18:49:49.868123+00:00 app[web.1]: events.js:292
2020-08-06T18:49:49.868203+00:00 app[web.1]: throw er; // Unhandled 'error' event2020-08-06T18:49:49.868208+00:00 app[web.1]: ^2020-08-06T18:49:49.868208+00:00 app[web.1]: 2020-08-06T18:49:49.868217+00:00 app[web.1]: Error: listen EADDRINUSE: address already in use :::41212
2020-08-06T18:49:49.868217+00:00 app[web.1]: at Server.setupListenHandle [as _listen2] (net.js:1313:16)2020-08-06T18:49:49.868217+00:00 app[web.1]: at listenInCluster (net.js:1361:12)2020-08-06T18:49:49.868218+00:00 app[web.1]: at Server.listen (net.js:1447:7)2020-08-06T18:49:49.868222+00:00 app[web.1]: at Function.listen (/app/node_modules/express/lib/application.js:618:24)
2020-08-06T18:49:49.868222+00:00 app[web.1]: at Object.<anonymous> (/app/app.js:146:5)2020-08-06T18:49:49.868222+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1138:30)2020-08-06T18:49:49.868223+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)2020-08-06T18:49:49.868223+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:986:32)
2020-08-06T18:49:49.868223+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:879:14)2020-08-06T18:49:49.868227+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)2020-08-06T18:49:49.868228+00:00 app[web.1]: at internal/main/run_main_module.js:17:472020-08-06T18:49:49.868228+00:00 app[web.1]: Emitted 'error' event on Server instance at:
2020-08-06T18:49:49.868228+00:00 app[web.1]: at emitErrorNT (net.js:1340:8)
2020-08-06T18:49:49.868228+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:84:21) {
2020-08-06T18:49:49.868232+00:00 app[web.1]: code: 'EADDRINUSE',
2020-08-06T18:49:49.868232+00:00 app[web.1]: errno: 'EADDRINUSE',
2020-08-06T18:49:49.868233+00:00 app[web.1]: syscall: 'listen',
2020-08-06T18:49:49.868233+00:00 app[web.1]: address: '::',
2020-08-06T18:49:49.868233+00:00 app[web.1]: port: 41212
2020-08-06T18:49:49.868233+00:00 app[web.1]: }
2020-08-06T19:17:44.469614+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=glacial-garden-21504.herokuapp.com request_id=84715403-a9ea-414d-ad04-e1b2b712f20b fwd="112.79.249.195" dyno= connect= service= status=503 bytes= protocol=https
2020-08-06T19:17:45.793877+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=glacial-garden-21504.herokuapp.com request_id=1e9c96ca-dab7-4ea5-b870-62b4be7194fc fwd="112.79.249.195" dyno= connect= service= status=503 bytes= protocol=https
^CTerminate batch job (Y/N)? ^C

Отображается приведенное выше сообщение

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

1 Ответ

0 голосов
/ 06 августа 2020

Вы звоните app.listen два раза. В этом нет необходимости. Код ошибки EADDRINUSE сообщает вам, что вы пытаетесь прослушивать адрес, который уже используется, что произойдет, если вы вызовете app.listen два раза. Просто вызовите его один раз, например:

let port = process.env.PORT;
if (port == null || port == "") { port = 3000; }

app.listen(port, function() {
  console.log("Server has started successfully!");
});
...