Express обслуживает клиентское приложение create-реакции-приложение.Все запросы API происходят внутри приложения реакции, а также при маршрутизации с маршрутизатором реакции.Все работает нормально, когда я запускаю это локально, но я продолжаю получать внутреннюю ошибку сервера при развертывании в Heroku.Я новичок, поэтому буду благодарен за любые предложения.
// server.js
const express = require("express");
const app = express();
const path = require("path");
const port = process.env.PORT || 5000;
//for static files
//app.use(express.json());
app.use(express.static(path.join(__dirname, "client/build")));
//for production mode
if (process.env.NODE_ENV === "production") {
app.use(express.static(path.join(__dirname, "client/build")));
app.get("*", (req, res) => {
res.sendFile(path.join((__dirname ="client/build/index.html")));
});
}
// //for build mode
app.get("*", (req, res) => {
res.sendFile(path.join(__dirname + "/client/public/index.html"));
});
//start server
app.listen(port, err => {
if (err) {
console.warn(err);
}
console.log("Listening on port " + port);
});
package.json {
"name": "xxxx",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"client-install": "npm install --prefix client",
"start": "node server/server.js",
"server": "nodemon server/server.js",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "xxxxxxxx",
"license": "MIT",
"dependencies": {
"body-parser": "^1.18.3",
"concurrently": "^4.1.0",
"dotenv": "^6.2.0",
"express": "^4.16.4",
"node-fetch": "^2.3.0"
},
"engines": {
"node": "10.x"
}
}