Node.js - указание URL в Heroku приводит к внутренней ошибке сервера, работает локально, работает нормально - PullRequest
0 голосов
/ 08 октября 2019

У меня возникли проблемы с моим приложением после его развертывания на heroku. Когда я указываю URL или обновляю браузер на странице ДРУГОЙ, чем на домашней странице, я получаю «Внутреннюю ошибку сервера», и страница не загружается. Однако, когда я нажимаю на ссылки, которые направляют меня на эти страницы с домашней страницы, все работает нормально. Когда я запускаю сервер локально, это не дает мне этой ошибки.

На основании моих исследований это, вероятно, ошибка на стороне сервера. Вот мой код:

Node.js бэкэнд

const express = require("express");
const bodyParser = require("body-parser");
const passport = require("passport");
const users = require("./routes/api/users");
const actions = require("./routes/api/dbActions");
const app = express();

// Bodyparser middleware
app.use(
  bodyParser.urlencoded({
    extended: false
  })
);

app.use(bodyParser.json());

// Passport middleware
app.use(passport.initialize());

// Passport config
require("./config/passport")(passport);

// Routes
app.use("/api/users", users);
app.use("/api/dbActions", actions);

// Serve static assets if in production
if (process.env.NODE_ENV === 'production') {
  // Set static folder
  app.use(express.static('client/build'));

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

const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server running on port ${port} !`));

Есть идеи, почему это может произойти?

Спасибо !!

1 Ответ

0 голосов
/ 08 октября 2019

В моем файле server.js я включил следующее:

const path = require('path');

Что, похоже, мне помогло.

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