Ошибка при деплое на Heroku
Bild происходит успешно. Однако сначала при переходе на залитый сайт выдавало ошибку Cannot GET / На просторах интернета нашла такое решение:
if (process.env.NODE_ENV === 'production') {
// set static folder
app.use(express.static('client/build'));
}
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
});
Однако в этом случае на сайте появляется ошибка Internal Server Error.
Подскажите, как это можно испавить?
Мой файл index.js
const express = require('express');
const mongoose = require('mongoose');
const dotenv = require('dotenv');
dotenv.config();
const app = express();
const logger = require('./winston');
app.use(express.json({ extended: true }));
if (process.env.NODE_ENV === 'production') {
// set static folder
app.use(express.static('client/build'));
}
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
});
app.use('/api/auth', require('./routes/AuthRoutes'));
app.use('/api/link', require('./routes/LinkRoutes'));
app.use('/api/admin', require('./routes/AdminRoutes'));
app.use('/t', require('./routes/RedirectRoutes'));
const PORT = process.env.PORT || 5000;
async function start() {
try {
await mongoose.connect(
process.env.BD,
{
useNewUrlParser: true,
retryWrites: true,
},
);
app.listen(PORT, () => {
console.log('Start work');
logger.info(`Server started and running on : ${PORT} port`)
});
} catch (e) {
logger.error('Server Error')
console.log('Server Error', e.message);
process.exit(1);
}
}
start();
package.json
{
"name": "projectnodejs",
"version": "1.0.0",
"description": "У цьому проекті я вирішила зробити додаток, який відтворює домашню електронну бібліотеку.",
"main": "index.js",
"scripts": {
"start": "node index.js",
"server": "nodemon index.js",
"lint": "eslint **/*.js",
"client": "npm run start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\""
},
"repository": {
"type": "git",
"url": "git+https://github.com/Sasha4907/projectNodeJS.git"
},
"keywords": [],
"author": "Sasha Ped",
"license": "ISC",
"bugs": {
"url": "https://github.com/Sasha4907/projectNodeJS/issues"
},
"homepage": "https://github.com/Sasha4907/projectNodeJS#readme",
"dependencies": {
"@craco/craco": "^7.0.0-alpha.3",
"axios": "^0.27.2",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.2.5",
"config": "^3.3.7",
"dotenv": "^16.0.1",
"eslint-config-recommended": "^4.1.0",
"eslint-plugin": "^1.0.1",
"eslint-plugin-babel": "^5.3.1",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-react-hooks": "^4.6.0",
"express": "^4.18.1",
"express-validator": "^6.14.2",
"fetch": "^1.1.0",
"hooks": "^0.3.2",
"js-acl": "^1.0.0",
"jsonwebtoken": "^8.5.1",
"mongoose": "^6.5.0",
"node": "^18.7.0",
"proxy": "^1.0.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.3.0",
"react-scripts": "^5.0.1",
"request": "^2.88.2",
"shortid": "^2.2.16",
"typescript": "^4.7.4",
"webpack": "^5.74.0",
"webpack-dev-server": "^4.9.3",
"winston": "^3.8.1"
},
"devDependencies": {
"@typescript-eslint/parser": "^5.32.0",
"concurrently": "^7.3.0",
"eslint": "^8.21.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-config-node": "^4.1.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-jest": "^26.7.0",
"eslint-plugin-jsx-a11y": "^6.6.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.30.1",
"eslint-plugin-sonar": "^0.8.0",
"eslint-plugin-sonarjs": "^0.14.0",
"husky": "^8.0.1",
"jest": "^28.1.3",
"lint-staged": "^13.0.3",
"nodemon": "^2.0.19",
"prettier": "^2.7.1"
}
}