部署到heroku的MERN堆栈应用在每个api调用上都为空白

问题描述

我已经按照以下架构使用MERN Stack开发了一个Web应用程序: project architecture

它可以正常工作,但是每当进行一次API调用时,即使在Heroku日志上它显示服务器以“ status = 200”响应,它也会变为空白:

2020-08-11T16:26:01.442059+00:00 heroku[router]: at=info method=GET path="/api/morphicQuestions/current" xxx.herokuapp.com request_id=63b238ba-03cc-4df3-9dcf-833de1d2f096 fwd="x.x.x.x" dyno=web.1 connect=1ms service=9ms status=200 bytes=1423 protocol=https

这是我的客户端package.json文件

"scripts": {
"start": "serve -s build","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject","dev": "concurrently \"cd backend && nodemon server\" \"react-scripts start\"","heroku-postbuild": "NPM_CONfig_PRODUCTION=false npm run build && cd backend && npm install"

},

这是我的server.js文件

const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const path = require("path");
const morphicQuestionsRouter = require("./routes/morphicQuestions");
const morphicAnswersRouter = require("./routes/morphicAnswers");
const contactFormRouter = require("./routes/contactForm");

require("dotenv").config();

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

app.use(cors());
app.use(express.json());

const uri = process.env.ATLAS_URI;
mongoose.connect(uri,{
  useNewUrlParser: true,useCreateIndex: true,useUnifiedTopology: true,useFindAndModify: false,});
const connection = mongoose.connection;
connection.once("open",() => {
  console.log("MongoDB database connection established successfully");
});

// Server static assets if in production
if (process.env.NODE_ENV === "production") {
  // Set static folder
  app.use(express.static("build"));
  app.get("" * "",(req,res) => {
    res.sendFile(path.join(__dirname,"build","index.html"));
  });
}

app.use("/api/morphicQuestions",morphicQuestionsRouter);
app.use("/api/morphicAnswers",morphicAnswersRouter);
app.use("/api/contactForm",contactFormRouter);

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

我在Heroku测功机上设置了环境变量。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)