Я знаю, что есть куча руководств и сообщений о стеке MERN, но я не могу правильно развернуть фронтенд. Бэкэнд правильно обрабатывает запросы API, поскольку он работает с почтальоном.
У меня есть express .stati c путь к папке client / build. Неправильный ли путь к папке сборки реакции или есть что-то еще, что я должен изучить?
структура папок
Вот мой сервер. js
const mongoose = require("mongoose");
const express = require("express");
var cors = require("cors");
const bodyParser = require("body-parser");
const logger = require("morgan");
const Data = require("./data");
const path = require("path");
require("dotenv").config();
const API_PORT = process.env.PORT || 3001;
const app = express();
app.use(cors());
const router = express.Router();
// this is our MongoDB database
// connects our back end code with the database
mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true });
let db = mongoose.connection;
db.once("open", () => console.log("connected to the database"));
// checks if connection with the database is successful
db.on("error", console.error.bind(console, "MongoDB connection error:"));
// (optional) only made for logging and
// bodyParser, parses the request body to be a readable json format
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(logger("dev"));
router.get("/", (req, res) => {
res.send("hello world");
});
// append /api for our http requests
app.use("/api", router);
if (process.env.NODE_ENV === "production") {
app.use(express.static(path.join(__dirname, "client", "build")));
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
});
}
// launch our backend into a port
app.listen(API_PORT, () => console.log(`LISTENING ON PORT ${API_PORT}`));