Приложение node.js получает ошибку R10 в Heroku - PullRequest
0 голосов
/ 27 сентября 2018

Ранее я рассматривал подобные вопросы, но ни одно из решений не было разработано для меня, поэтому я задаю этот вопрос.Я просто пытаюсь развернуть приложение node.js на heroku, но постоянно получаю сообщение об ошибке приложения.

В мои журналы входит следующее:

2018-09-29T18:54:45.545079+00:00 app[web.1]: > pg_backend@1.0.0 start /app
2018-09-29T18:54:45.545081+00:00 app[web.1]: > node server.js
2018-09-29T18:54:45.545082+00:00 app[web.1]:
2018-09-29T18:54:46.035221+00:00 app[web.1]: listening to requests...
2018-09-29T18:55:43.134627+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2018-09-29T18:55:43.134859+00:00 heroku[web.1]: Stopping process with SIGKILL
2018-09-29T18:55:43.317846+00:00 heroku[web.1]: Process exited with status 137
2018-09-29T18:55:43.329780+00:00 heroku[web.1]: State changed from starting to crashed
2018-09-29T21:23:23.635112+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=project-gorilla-backend.herokuapp.com request_id=2ec25806-0c83-4a7d-9bd8-eab41a67e996 fwd="131.227.39.211" dyno= connect= service= status=503 bytes= protocol=https
2018-09-29T21:23:24.637219+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=project-gorilla-backend.herokuapp.com request_id=a0582179-52fe-4c55-ba87-b0c146d66962 fwd="131.227.39.211" dyno= connect= service= status=503 bytes= protocol=https

Ниже приведен мой пакетФайл .json:

{
  "name": "pg_backend",
  "version": "1.0.0",
  "description": "back end application for the project gorilla site",
  "main": "index.js",
  "scripts": {
    "start": "node server.js"
  },
  "engines": {
    "node": "8.10.0",
    "npm": "5.6.0"
    },
  "author": "Christopher Salay",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.3",
    "nodemailer": "^4.6.8",
    "socket.io": "^2.1.1",
    "vimeo": "^2.1.0"
  }
}

, и это мой Procfile:

web: node server.js

Вот моя ссылка server.js

let express = require('express'), app = express(), path = require('path'),
socket = require('socket.io'), emailModule = require('./email.js'), 
formValidationModule = require('./formValidation.js'), vimeoModule = require('./vimeo.js'),
port = process.env.PORT || 5000;

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname + '/index.html'));
});

let server = app.listen(port,'0.0.0.0',function(){
    console.log('listening to requests...');
    vimeoModule.search()
});

let io = socket(server);


io.on('connection', (socket)=>{
    console.log('made a connection!');

    socket.on('email', (data)=>{
        if(formValidationModule.checkEmptyContact(data.client, data.email, data.name, 
            data.title, data.message)){
                socket.emit('invalidData');
            }
            else {
            /**
                 * * Here you need to set your email options which includes the clients email, destination email,
                 * subject and the text (the email content).
                 */
                emailModule.setMailOptions(data.email,/*'Info@project-gorilla.co.uk'*/'salay777@hotmail.co.uk'
                , data.client + ' ' + '(' +
                data.name + ')' + ' ' + data.title, data.message).then((mailOpts)=>{
                    emailModule.send(mailOpts)

                });
                console.log('email has been sent!');
            }
    });
});

на приложение heroku:

https://pg -gorilla-backend.herokuapp.com /

и я использую следующую команду для развертывания на heroku:

git push heroku master

1 Ответ

0 голосов
/ 27 сентября 2018

Вам необходимо настроить свой порт на heroku, поскольку вы не можете передавать статический порт приложению при развертывании на heroku. Heroku имеет встроенный метод для привязки назначенного порта к приложению, которое развернуто в его среде.Вам нужно использовать env var, чтобы назначить порт приложению.В приложении heroku вы можете сделать это, выбрав «Настройки»> «Показать конфигурационные переменные»> «Добавить PORT 3000», а затем «heroku» во встроенном методе назначит назначенный номер PORT приложению.

...