0

我目前正在尝试将PERN 应用程序部署到Heroku,但这样做有困难。我环顾四周,但找不到任何有用的资源。我成功地部署了前端,但是一旦我加载我的应用程序,我就无法连接到端点。 在此处输入图像描述

这是我的代码到目前为止的样子:

配置文件

{
  "production": {
        "use_env_variable": "HEROKU_POSTGRESQL_JADE_URL",
        "dialect": "postgres",
        "dialectOptions": {
            "ssl": {
                "rejectUnauthorized": false
            }
        }
    }
}

应用程序.js

require('dotenv').config();
const express = require('express');
const http = require('http');
const app = express();
const cors = require('cors');
const path = require('path');

const port = process.env.PORT || 4001;

//* Shorten file path
app.use(
    '/uploads',
    express.static(path.join(__dirname, 'public/uploads'))
);

//* Middleware
app.use(express.json());
app.use(cors());

if (process.env.NODE_ENV === 'production') {
    //points to index.js in client
    app.use(
        express.static(path.join(__dirname, 'client/build'))
    );
}

//* Routes

//? Index Routes
app.use('/', require('./routes/index'));

//? Authorization Routes
app.use('/auth', require('./routes/jwtAuth'));

//? User Routes
app.use('/user', require('./routes/user'));

//? Livefeed Routes
app.use('/livefeed', require('./routes/livefeed'));

app.get('*', (req, res) => {
    res.sendFile(
        path.join(__dirname + '/client/build/index.html')
    );
});

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

package.json(服务器)

{
    "name": "server",
    "version": "1.0.0",
    "description": "",
    "main": "app.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node app.js",
        "heroku-postbuild": "cd client && npm install && npm run build"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
        "bcrypt": "^5.0.1",
        "cors": "^2.8.5",
        "dotenv": "^10.0.0",
        "express": "^4.17.1",
        "jsonwebtoken": "^8.5.1",
        "moment": "^2.29.1",
        "multer": "^1.4.2",
        "pg": "^8.6.0",
        "sequelize": "^6.6.2",
        "sequelize-cli": "^6.2.0"
    }
}

package.json(客户端)

{
    "name": "client",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "@ant-design/icons": "^4.6.2",
        "@fortawesome/fontawesome-svg-core": "^1.2.35",
        "@fortawesome/free-solid-svg-icons": "^5.15.3",
        "@fortawesome/react-fontawesome": "^0.1.14",
        "@react-google-maps/api": "^2.2.0",
        "@testing-library/jest-dom": "^5.14.1",
        "@testing-library/react": "^11.2.7",
        "@testing-library/user-event": "^12.8.3",
        "antd": "^4.16.3",
        "formik": "^2.2.9",
        "react": "^17.0.2",
        "react-dom": "^17.0.2",
        "react-player": "^2.9.0",
        "react-redux": "^7.2.4",
        "react-router-dom": "^5.2.0",
        "react-scripts": "4.0.3",
        "react-toastify": "^7.0.4",
        "redux": "^4.1.0",
        "redux-logger": "^3.0.6",
        "styled-components": "^5.3.0",
        "web-vitals": "^1.1.2"
    },
    "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"
        ]
    },
    "proxy": "http://localhost:4001"
}

任何有关问题的帮助或良好资源的链接将不胜感激。

4

0 回答 0