无法在 heroku 上 GET / MERN 堆栈部署

时间:2021-01-23 14:03:50

标签: node.js reactjs heroku mern

嗨,我在尝试将我的 mern 堆栈部署到 heroku 时遇到了问题。我尝试部署它的每一种方式我都得到相同的错误,获取错误无法获取 /。我已经完成了教程,但仍然没有运气

这是我的服务器。 js文件

const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const passport = require("passport");

const users = require("./routes/api/users");
const payees = require("./routes/api/payees");
const transactions = require("./routes/api/transactions");

const path = require('path')

const app = express();

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

// DB Config
const db = require("./config/keys").mongoURI;

// Connect to MongoDB
mongoose
  .connect(
    db,
    { useNewUrlParser: true }
  )
  .then(() => console.log("MongoDB successfully connected"))
  .catch(err => console.log(err));


app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

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/payees", payees);
app.use("/api/transactions", transactions)

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'))
  });

}

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

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

module.exports = { app };

这是我的 package.json 文件

{
  "name": "STUBANK",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "client-install": "npm install --prefix client",
    "start": "node server.js",
    "server": "nodemon server.js",
    "client": "npm start --prefix client",
    "dev": "concurrently \"npm run server\" \"npm run client\"",
    "test": "mocha",
    "heroku-postbuild": "cd client && npm install && npm run build"
  },
  "author": "Ojini Jude",
  "license": "MIT",
  "dependencies": {
    "@material-ui/core": "^4.11.2",
    "axios": "^0.21.1",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.18.3",
    "chai": "^4.2.0",
    "chai-http": "^4.3.0",
    "classnames": "^2.2.6",
    "crypto-random-string": "^3.3.0",
    "dotenv": "^6.2.0",
    "express": "^4.16.4",
    "is-empty": "^1.2.0",
    "jsonwebtoken": "^8.5.1",
    "jwt-decode": "^3.1.2",
    "mdbreact": "^5.0.1",
    "mocha": "^8.2.1",
    "mongoose": "^5.3.6",
    "particles-bg": "^2.5.0",
    "passport": "^0.4.1",
    "passport-jwt": "^4.0.0",
    "password-validator": "^5.1.1",
    "react": "^17.0.1",
    "react-bootstrap": "^1.4.0",
    "react-dom": "^17.0.1",
    "react-dropdown": "^1.9.0",
    "react-redux": "^7.2.2",
    "react-router-dom": "^5.2.0",
    "react-scripts": "^4.0.1",
    "react-search-box": "^2.0.2",
    "react-search-field": "^1.2.0",
    "react-select": "^3.1.1",
    "redux": "^4.0.5",
    "redux-thunk": "^2.3.0",
    "supertest": "^6.0.1",
    "validator": "^13.5.1"
  },
  "devDependencies": {
    "concurrently": "^4.1.2",
    "nodemon": "^1.19.4"
  },
  "engines": {
    "node": "12.16.0"
  }
}

任何帮助将不胜感激。

file structure

0 个答案:

没有答案