簡體   English   中英

將應用程序部署到 Heroku 后,路由將不起作用

[英]Routing won't work once app is deployed to Heroku

我在 Heroku 上部署了一個全棧應用程序,前端使用 React,后端使用 Node.js。 最初,我的前端會顯示,但服務器沒有運行。 現在我在package.json添加了更多依賴項,似乎服務器正在運行,但前端不會呈現。 我的頁面如下所示: 在此處輸入圖像描述

當我查看 Heroku 日志時,輸出如下: 在此處輸入圖像描述

似乎服務器正在一個端口上啟動(在本例中為端口:17789 和 46894),但隨后其他東西試圖在同一端口上運行,這會導致錯誤。 我的服務器的端口在我后端的index.js文件中設置為process.env.PORT 我不確定這是否是我需要改變的。 這是 index.js:

 import express from 'express'; import bodyParser from 'body-parser'; import mongoose from 'mongoose'; import cors from 'cors'; import postRoutes from './routes/posts.js'; const app = express(); //Middleware app.use(bodyParser.json({ limit: '30mb', extended: true })); app.use(bodyParser.urlencoded({ limit: '30mb', extended: true })); app.use(cors()); app.use('/posts', postRoutes); const CONNECTION_URL = 'mongodb+srv://caseyclinga:123abc@passport.czhpd.mongodb.net/recollections?retryWrites=true&w=majority'; const PORT = process.env.PORT || 5000; mongoose .connect(CONNECTION_URL, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => app.listen(PORT, () => console.log(`Server running on Port: ${PORT} `)) ) .catch((err) => console.log(err));

最后,這是我的package.json

 { "scripts": { "build": "cd client && npm run build", "install-client": "cd client && npm install", "heroku-postbuild": "npm run install-client && npm run build", "server": "cd server && nodemon server.js", "develop": "concurrently --kill-others-on-fail \"npm run server\" \"npm run start --prefix client\"", "start": "concurrently --kill-others-on-fail \"npm run server\" \"npm run start --prefix client\"" }, "dependencies": { "body-parser": "^1.20.0", "concurrently": "^7.2.1", "cors": "^2.8.5", "express": "^4.18.1", "mongoose": "^6.3.4", "nodemon": "^2.0.16" } }

有誰知道這個問題可能出在哪里?

在您的代碼中,您有app.use('/posts', postRoutes); ,但您正在嘗試獲取 /post 而不是 /posts。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM