问题描述
我已经按照以下架构使用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 (将#修改为@)