Javascript Node.js应用程序在本地主机上运行良好,但在Heroku上部署时显示错误
下面是我的index.js文件的代码。我使用mongoose进行数据库连接。每次我尝试运行应用程序时,它都会在get方法中显示错误。进程终止,错误为无子进程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
`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