Произошла ошибка HPM при попытке прокси-запроса в Heroku - PullRequest
0 голосов
/ 15 октября 2019

Я получаю эту ошибку: [HPM] Error occurred while trying to proxy request /api/artefact from myapp.herokuapp.com to http://localhost:5000 (ECONNREFUSED) при развертывании моего приложения MERN.

Это соответствующие файлы с точки зрения проксирования и развертывания:

setupProxy.js

const proxy = require("http-proxy-middleware");

module.exports = app => {
    app.use(proxy("/api/", { target: "http://localhost:5000" }));
};

server.js

const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const logger = require("morgan");
const { mongo_uri } = require("./config/config");
const path = require("path");

let cors = require("cors");

const PORT = process.env.PORT || 5000;

const app = express();
app.use(cors());

// Set up Routes
const artefactRoutes = require("./routes/api/artefact.js");
const userRoutes = require("./routes/api/users.js");
const authRoutes = require("./routes/api/auth.js");

// Connect to MongoDB Database
const dbRoute = mongo_uri;
mongoose
    .connect(dbRoute, { useNewUrlParser: true })
    .then(() => console.log("Connected to Database"))
    .catch(err => console.log(err));

// Body Parser Middleware to parse request body into readable json format
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// Used for logging
app.use(logger("dev"));

app.use("/api", artefactRoutes);
app.use("/api/users", userRoutes);
app.use("/api/auth", authRoutes);

if (process.env.NODE_ENV === "production") {
    app.use(express.static(path.join(__dirname, "../client/build")));

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

app.listen(PORT, () =>
    console.log(`Static server has started. Listening on port ${PORT}`)
);

static.json (хотя я не совсем уверен, что это делает, поскольку я только что нашел, что кто-то делает это в другом потоке, но это ничего не изменило для меня)

{
    "root": "build/",
    "clean_urls": false,
    "routes": {
        "/**": "index.html"
    }
}

и мои сценарии в родительском каталоге package.json

"scripts": {
        "start": "concurrently \"cd backend && node server.js\" \"cd client && npm start\"",
        "format": "prettier",
        "heroku-postbuild": "cd client && npm install && npm run build"
    },

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

-/project
--/client
--/backend

В основном проблема, с которой я столкнулся, заключается в том, что я развернул свое приложение реагирования на heroku, и интерфейс загружается нормально, но ни один из вызовов axios api на мой сервер ничего не возвращает и просто выдает ошибку 504 тайм-аута, а в herokuлоги это просто говорит об ошибке прокси. Любая помощь будет высоко ценится!

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