Heroku Web 进程在启动后 60 秒内无法绑定到 $PORT

Posted

技术标签:

【中文标题】Heroku Web 进程在启动后 60 秒内无法绑定到 $PORT【英文标题】:Heroku Web process failed to bind to $PORT within 60 seconds of launch 【发布时间】:2018-11-14 03:19:03 【问题描述】:

我正在制作一个 Angular 应用程序,在本地运行良好,但是当我尝试使用 heroku 部署它时,显示下一个错误:

 Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 

代码如下所示:

const express= require('express'),
path= require('path');

const app =express();

app.use(express.static('./dist/re-mi'));

app.get('/*', (req,res)=>
res.sendFile(path.join(__dirname, '/dist/myapp/index.html'));
);

var port_number = server.listen(process.env.PORT || 3000);
app.listen(port_number);

我也看到其他问题有相同的错误,但没有答案适合我

【问题讨论】:

【参考方案1】:

您的port_number 变量似乎设置不正确。如果您的完整代码已发布,则变量server 未在任何地方定义。 那是从线

var port_number = server.listen(process.env.PORT || 3000);

即使定义了server,server.listen 似乎也不太可能返回它正在侦听的端口号。 我想你会想要:

var port_number = process.env.PORT || 3000;
app.listen(port_number);

【讨论】:

您的server 变量是否在文件中的某处定义?我认为该调用 (server.listen) 的行会导致错误,因此 app.listen() 调用不会被执行。我在想,如果你在 app.listen 调用中放置一个回调函数(第二个参数,在 port_number 之后),console.logs 会显示在屏幕上,只是为了确保它正在运行。 ` app.listen(port_number, () => console.log("API 服务器现在正在监听 PORT " + port_number + "!); ); `

以上是关于Heroku Web 进程在启动后 60 秒内无法绑定到 $PORT的主要内容,如果未能解决你的问题,请参考以下文章

Heroku Web 进程在启动后 60 秒内无法绑定到 $PORT

错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT - Heroku

Node.js 和 Heroku 错误:Web 进程在启动后 60 秒内无法绑定到 $PORT

Heroku 节点 js 部署问题:Web 进程在启动后 60 秒内无法绑定到 $PORT

将 Webpack 应用程序部署到 Heroku 时,“Web 进程在启动后 60 秒内无法绑定到 $PORT”

Heroku discord bot 托管错误 R10(启动超时)-> Web 进程在启动后 60 秒内无法绑定到 $PORT