我已经创建了一个完整的 MERN 项目并将其部署在 Heroku 上。但它不起作用。它会导致一些错误
2021-04-03T05:13:48.601333+00:00 app[web.1]: npm ERR!
2021-04-03T05:13:48.601635+00:00 app[web.1]: npm ERR! Failed at the server@1.0.0 start script.
2021-04-03T05:13:48.601904+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2021-04-03T05:13:48.628094+00:00 app[web.1]:
2021-04-03T05:13:48.628477+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2021-04-03T05:13:48.628718+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2021-04-03T05_13_48_603Z-debug.log
2021-04-03T05:13:48.724467+00:00 heroku[web.1]: Process exited with status 1
2021-04-03T05:13:48.813926+00:00 heroku[web.1]: State changed from starting to crashed
2021-04-03T07:33:34.448383+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=student-help-portal.herokuapp.com request_id=9a9f276d-57b4-4414-898e-e47229a853c1 fwd="106.213.162.11" dyno= connect= service= status=503 bytes= protocol=https
2021-04-03T07:33:35.088427+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=student-help-portal.herokuapp.com request_id=1ff051a0-0fad-4eb5-b993-489618f68a72 fwd="106.213.162.11" dyno= connect= service= status=503 bytes= protocol=https
部署的链接是:https://student-help-portal.herokuapp.com/
我不知道我是如何处理这个问题的。这个项目很容易在本地主机上运行。请帮我我该怎么办?
App.js 看起来像:
const { static, urlencoded } = require("express");
const express = require("express");
const path = require("path");
const cookieparser = require("cookie-parser");
const hbs = require("hbs");
const { kMaxLength } = require("buffer");
require('../Server/db/dbconnection');
const port = process.env.PORT || 5000;
const app = express();
const cors =require('cors')
var bodyParser = require('body-parser')
app.use(cors())
app.use(express.static(path.join(__dirname, '../Server/public/')))
const view_path = path.join(__dirname, '../Server/public');
const partials_path = path.join(__dirname, '../Server/templates');
app.use(express.json());
// app.use(bodyParser.json({limit:'10mb'}))
app.use(express.urlencoded({ extended: false }));
app.set("view engine", "hbs");
app.set("views", view_path);
app.use(cookieparser());
hbs.registerPartials(partials_path);
app.use(require("../Server/Router/auth"));
if(process.env.NODE_ENV=='production'){
app.use(express.static('client/build'))
app.get("*", (req,res)=>{
res.sendFile(path.resolve(__dirname,'client','build','index.html'));
})
}
app.listen(port, () => {
console.log(`Server Is Runing At Port No ${port}`);
});
我的node js服务器的package.json文件是:
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node app.js",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
},
"author": "Keval Dhol",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"cloudinary": "^1.25.1",
"cookie-parser": "^1.4.5",
"cors": "^2.8.5",
"express": "^4.17.1",
"hbs": "^4.1.1",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.11.11",
"multer": "^1.4.2",
"nodemailer": "^6.5.0",
"validator": "^13.5.2"
}
}
react 的package.json 文件为:
{
"name": "client",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:5000/",
"dependencies": {
"@ckeditor/ckeditor5-build-classic": "^25.0.0",
"@ckeditor/ckeditor5-react": "^3.0.1",
"@material-ui/core": "^4.11.3",
"@material-ui/icons": "^4.11.2",
"@testing-library/jest-dom": "^5.11.9",
"@testing-library/react": "^11.2.5",
"@testing-library/user-event": "^12.7.3",
"axios": "^0.21.1",
"node-html-parser": "^3.0.3",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-html-parser": "^2.0.2",
"react-router-dom": "^5.2.0",
"react-rte": "^0.16.3",
"react-scripts": "4.0.3",
"web-vitals": "^1.1.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
这是我需要更改或添加的文件才能在 heroku 上成功运行此项目。