Развернуть приложение React на heroku не может подключиться к бэкэнду - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь развернуть мое приложение, которое использует node.js, реагирует и MongoDB на Heroku;Развертывание прошло успешно;Тем не менее, веб-сайт не может получать данные из MongoDB. Ошибка GET http://localhost:5000/comment net::ERR_CONNECTION_REFUSED и Uncaught (in promise) Error: Network Error, я думаю, это потому, что у меня не работает node server.js в бэкэнде. Может кто-нибудь помочь мне с тем, как правильно развернуть это? мой pakage.json в бэкэнде -

    "client-install": "npm install --prefix myprofile",
    "start":"node server.js",
    "server":"nodemon server.js",
    "client":"npm start --prefix myprofile",
    "dev":"concurrently \"npm run server\" \"npm run client\"",
    "heroku-postbuild":"NPM_CONFIG_PRODUCTION=false npm install --prefix myprofile && npm run build --prefix myprofile"
  }

А мой server.js -

const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const path = require("path");
require("dotenv").config();

const app = express();
const port = process.env.PORT || 5000;

app.use(express.json());
app.use(cors());
//app.use(express.static(path.join(__dirname,'./myprofile/build')));

const uri = process.env.ATLAS_URI;
mongoose.connect(uri, {
  useNewUrlParser: true,
  useCreateIndex: true,
  useUnifiedTopology: true
});
const connection = mongoose.connection;
connection.once("open", () => {
  console.log("MongoDB data connected");
});
const CommentRouter = require("./CommentRouter");
app.use("/comment", CommentRouter);

if (process.env.NODE_ENV === "production") {
  app.use(express.static("myprofile/build"));
  app.get("*", (req, res) => {
    res.sendFile(path.resolve(__dirname, "myprofile", "build", "index.html"));
  });
}

app.listen(port, () => console.log(`Server is running on ${port}`));

Заранее большое спасибо!

1 Ответ

0 голосов
/ 04 ноября 2019

Если вы развертываете этот проект на heroku, ваша команда start и ваша server.js похожи на этот пример , так что это хорошее начало.

Настраиваете ли вы свою средупеременные с героку, конкретно process.env.ATLAS_URI? Я полагаю, что heroku не знает, где находится ваша база данных MongoDB.

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