【问题标题】:Heroku deployment : Something is already running on port ****Heroku 部署:端口 **** 上已经有东西在运行
【发布时间】:2019-12-24 21:46:03
【问题描述】:

我尝试在 Heroku 上部署我的应用 (ReactJs-NodeJs-Mongo)。

但是当我尝试启动它时遇到了一个问题,我收到一条错误消息“端口 **** 上已经有东西在运行”。

我的背在跑,但不是我的前面。

这是我第一次尝试在 Heroku 上进行部署。所以我错过了一些关于它的东西。

我该如何解决这个问题?

链接到我的 git:https://github.com/romainbor/eteach

这是我的服务器文件夹中的 index.js:

const express = require('express');
const bodyparser = require('body-parser');
const security = require('./middleware/security');
const userRouter = require('./routes/user');
const AnnonceRouter = require('./routes/annonce');
const securityRouter = require('./routes/security');
const commentRouter = require('./routes/comment');
const mailRouter = require('./routes/mail')
const path = require('path');


const isDev = process.env.NODE_ENV !== 'production';
const PORT = process.env.PORT || 5000;
const PORT_CHAT = 3231


const app = express();

//app.use(express.static(path.resolve(__dirname, '../react-ui/build')));

const cors = require('cors');


var chat = require('http').createServer()
var io = module.exports.io = require('socket.io')(chat)

const SocketManager = require('./SocketManager')

io.on('connection', SocketManager)

chat.listen(PORT_CHAT, ()=>{
    console.log("Connected to port:" + PORT_CHAT);
})

app.use(cors());
app.use(bodyparser.json());
app.use(security.verifyToken);
app.use('/', securityRouter);
app.use('/annonce', AnnonceRouter);
app.use('/user', userRouter);
app.use('/comment', commentRouter);
app.use('/mail', mailRouter);


// Serve static assets if in production
app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html')) // relative path
})

app.listen(PORT, function () {
  console.error(`Node ${isDev ? 'dev server' : 'cluster worker '+process.pid}: listening on port ${PORT}`);
});

我的 package.json 在根目录:

"scripts": {
    "start": "concurrently \"cd server && node index.js\" \"cd client && npm start\"",
    "heroku-postbuild": "cd client && npm install && npm run build"
  }

我的所有 console.log 都从我的背后运行:“应用程序正在侦听端口 ****”等。 但在我面前

2019-08-17T13:16:53.800476+00:00 app[web.1]: [1] 端口 32879 上已经有东西在运行。 2019-08-17T13:16:53.840457+00:00 app[web.1]: [1] cd client && npm start 以代码 0 退出

如果你知道我做错了什么,我在听。

【问题讨论】:

    标签: node.js reactjs express heroku web-deployment


    【解决方案1】:

    尝试改变

    chat.listen(PORT_CHAT, function () {
      console.log("Connected to port:" + PORT_CHAT);
    });
    

    chat.listen(process.env.PORT_CHAT || PORT_CHAT, function () {
      console.log("Connected to port:" + PORT_CHAT);
    });
    

    并尝试将 PORT_CHAT 环境变量设置为您需要的值

    【讨论】:

      猜你喜欢
      • 2018-12-03
      • 1970-01-01
      • 2019-04-06
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2021-11-20
      • 2013-03-24
      相关资源
      最近更新 更多