Help us understand the problem. What is going on with this article?

Herokuで”Web process failed to bind to $PORT”が出力されるとき

More than 1 year has passed since last update.

前提

Node.js, Expressを利用している場合です。

現象

gitbash
git push heroku master
heroku open

このあと画面を開いてもApplication Errorで表示されない。

gitbash
heroku logs

ログを表示するとこのようなログメッセージが出てくる場合。

image.png

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

原因

このログの場合はアプリケーションで設定しているポートがherokuが設定するポートと違うためエラーがでている場合があります。
ポート番号を修正してあげれば解決します。

対応

Herokuのサンプルコードからコードをコピー

index.js
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))

重要なのはPORTの設定が「process.env.PORT || 5000」になっていることです。

aa_inc
動画広告マーケティング事業VeleTを運営しています
https://alpha-architect.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away