H10 «Ошибка приложения» на Heroku, но она не очень наглядна - PullRequest
0 голосов
/ 06 сентября 2018

Я получаю сообщение об ошибке ниже:

2018-09-05T21:53:30.439186+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=still-mesa-69894.herokuapp.com request_id=51732ef5-7b89-4629-900e-8a73c927d07f fwd="137.146.137.3
0" dyno= connect= service= status=503 bytes= protocol=https
2018-09-05T21:53:30.908139+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=still-mesa-69894.herokuapp.com request_id=32608dfd-2314-48e6-9696-8fa2fcd02d13 fwd="13
7.146.137.30" dyno= connect= service= status=503 bytes= protocol=https

Это мой package.json.

{
  "name": "myfinalproject",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:1337",
  "dependencies": {
    "@material-ui/core": "^1.4.2",
    "axios": "^0.18.0",
    "body-parser": "^1.18.3",
    "cookie-parser": "^1.4.3",
    "express": "^4.16.3",
    "express-session": "^1.15.6",
    "mapbox-gl": "^0.47.0",
    "material-ui": "^0.20.1",
    "mdi-material-ui": "^5.2.0",
    "mongoose": "^5.2.6",
    "morgan": "^1.9.0",
    "node-geocoder": "^3.22.0",
    "passport": "^0.4.0",
    "passport-local": "^1.0.0",
    "prop-types": "^15.6.2",
    "react": "^16.4.2",
    "react-bootstrap": "^0.32.1",
    "react-dom": "^16.4.2",
    "react-geolocation": "^1.0.4",
    "react-mapbox-gl": "^3.8.0",
    "react-navigation": "^2.9.3",
    "react-scripts": "1.1.4"
  },
  "scripts": {
    "start": "node server.js",
    "server": "nodemon server.js",
    "react": "react-scripts start",
    "dev": "npm run server | react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "engines": {
    "node": "8.11.2",
    "npm": "6.2.0"
  },
  "devDependencies": {
    "nodemon": "^1.17.5"
  }
}

У меня есть это в моем server.js

const express = require('express');
app.use(express.static(path.join(__dirname, 'build')));

app.get('/', function (req, res) {
var port = server.address().port;

// res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(process.env.PORT || 1337);

Я думаю, что есть ошибка с маршрутом '/', но не знаю почему. Это работает на моем localhost. Это приложение реагировать. Я первый таймер на Heroku. Я использую ПК с Windows, а не Mac.

1 Ответ

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

Я не уверен, почему вы обращаетесь к порту в методе app.get, но вот что вам нужно сделать, чтобы решить эту проблему.

app.get('/', (req, res) => {
   res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

//Assign port like this
const port = process.env.PORT || 1337;

app.listen(port, () => {
    console.log("App is running on port ", this.address().port);
});

Проверьте это Официальное справочное руководство Heroku для получения более подробной информации.

PS: я заменил обычную функцию на функцию стрелки. Но если вы все еще хотите использовать обычную функцию, вы можете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...