Node.js приложение хорошо работает на локальном хосте, но выдает ошибку при развертывании на Heroku - PullRequest
1 голос
/ 18 апреля 2020

Ниже приведен код моего индекса. js файла. Я использовал mon goose для подключения к базе данных. Каждый раз, когда я пытаюсь запустить приложение, в методе get отображается сообщение об ошибке. Процесс завершается с ошибкой дочернего процесса.

    `import express from 'express';
     import mongoose from 'mongoose';
     import bodyparser from 'body-parser';
     import cors from 'cors';
     import history from 'connect-history-api-fallback';
     import routes from './routes/RecruitmentRoutes';
     import routes1 from './routes/RecruitmentRoutes2';
     import deleteRoutes from './routes/deleteRoutes'

     var mongodb = require('mongodb');
     var path = require('path'); 
     const app = express();



   //mongo connection

    mongoose.Promise = global.Promise;
    mongoose.connect('mongodb+srv://csci202:Olemiss@2020@cluster0-x0tez.mongodb.net/test? 
    retryWrites=true&w=majority',{
    useNewUrlParser:true,
    useUnifiedTopology: true
    }).catch(err => console.log(err))


    //bodyparser setup

    app.use(bodyparser.urlencoded({extended:true}))
    app.use(bodyparser.json());


    app.use(cors());
    app.use(history({verbose:true}))
    const PORT = 4000;

    routes(app);
    routes1(app);
    deleteRoutes(app);

    app.use(express.static(path.join(__dirname,'build')));




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


    app.listen(PORT,()=>{

    console.log('Recruitment server running on port ')
    })`

Ниже приведен скриншот ошибки. Screenshot for heroku logs

1 Ответ

1 голос
/ 18 апреля 2020

Порт, определенный в Heroku, хранится в переменной среды process.env.PORT. Вы должны изменить свой код, чтобы использовать это. Как? Измените объявление переменной PORT вместо этого:

const PORT = 4000;

Используйте это:

const PORT = process.env.PORT || 4000

В этой строке используется переменная окружения process.env.PORT, если она определена (то есть, на Heroku) и использует 4000, если не определено (это означает, что на вашем локальном компьютере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...