Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js应用程序在本地主机上运行良好,但在Heroku上部署时显示错误_Javascript_Node.js_Heroku_Mongoose - Fatal编程技术网

Javascript Node.js应用程序在本地主机上运行良好,但在Heroku上部署时显示错误

Javascript Node.js应用程序在本地主机上运行良好,但在Heroku上部署时显示错误,javascript,node.js,heroku,mongoose,Javascript,Node.js,Heroku,Mongoose,下面是我的index.js文件的代码。我使用mongoose进行数据库连接。每次我尝试运行应用程序时,它都会在get方法中显示错误。进程终止,错误为无子进程 `import express from 'express'; import mongoose from 'mongoose'; import bodyparser from 'body-parser'; import cors from 'cors'; import history from

下面是我的index.js文件的代码。我使用mongoose进行数据库连接。每次我尝试运行应用程序时,它都会在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 ')
    })`

下面是错误的屏幕截图。

Heroku中定义的端口存储在环境变量
process.env.port
中。您需要更改代码才能使用它。怎么用?更改端口变量声明,而不是此声明:

const PORT = 4000;
使用以下命令:

const PORT = process.env.PORT || 4000
如果定义了
process.env.PORT
环境变量(即在Heroku上),则该行使用该变量;如果未定义(即在本地计算机上),则该行使用
4000