Как заставить package.json запускать server.js из другой папки (запуск проекта среднего стека в heroku) - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть проект среднего стека, который я хочу разместить на Heroku.Когда я настроил его, я подключил Heroku к приложению Angular, используя package.json и server.js в Angular.Затем я понял, что мне нужно запустить server.js приложения узла, чтобы запустить оба сервера одновременно.Это работает локально, однако я не могу понять, как запустить файл /backend/server.js при запуске Heroku.

Таким образом, моя структура папок выглядит следующим образом

    backend
        server.js (the file I want to run)
        the rest of the backend files
    server.js (the file I manage to run)
    package.json (the package.json heroku runs)
    procfile
    the angular application

Когда мой package.jsonвыглядит так:

    "start": "node server.js"

рендеринг html, однако экспресс не работает.

Когда я изменяю только эту строку, это

    "start": "node ./backend/server.js"

Heroku выдает ошибку приложения при попытке доступа к веб-странице

Это мой Procfile

    web: node ./backend/server.js

и мой backend / server.js

    const express = require('express');
    const cors = require('cors');
    const bodyParser = require('body-parser');
    const mongoose = require('mongoose');
    const path = require('path');
    const config = require('./config/database');

    const router = express.Router();

    mongoose.connect(config.database, { useNewUrlParser: true });
    const connection = mongoose.connection;

    connection.once('open', () => {
        console.log('Connected to mLab');
    });

    const app = express();

    app.use(cors());

    app.use(express.static(path.join(__dirname, '../dist/geoApp')))

    app.use(bodyParser.json());

    app.use('/', router);

    app.get('*', function (req, res) {
        res.sendFile(path.join(__dirname, '../dist/geoApp/index.html'));
    });

    app.listen(process.env.PORT || 8080, () =>
        console.log('Express server running on port 8080'));

Я пыталсячто здесь предлагается Heroku не может найти server.js , но он не работает

...