[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
2022-02-21 04:25:04
質問事項
初めてnode.jsアプリを作りました(ローカルでは正常に動作します) - しかし、heroku経由でデプロイできません(同様にherokuを初めて使用します)。コードは以下の通りです。SOは私に多くのコードを書かせないので、私はちょうど私のネットワーク内のローカルと同様にコードを実行することが問題ないことを示していると言うでしょう。
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (request, response) {
console.log('request starting for ');
console.log(request);
var filePath = '.' + request.url;
if (filePath == './')
filePath = './index.html';
console.log(filePath);
var extname = path.extname(filePath);
var contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
}
path.exists(filePath, function(exists) {
if (exists) {
fs.readFile(filePath, function(error, content) {
if (error) {
response.writeHead(500);
response.end();
}
else {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
}
});
}
else {
response.writeHead(404);
response.end();
}
});
}).listen(5000);
console.log('Server running at http://127.0.0.1:5000/');
何か思い当たることはありますか?
解決方法は?
Herokuはアプリに動的にポートを割り当てるので、ポートを固定で設定することはできません。Herokuはenvにポートを追加するので、そこから引っ張ってくればいい。リスナーをこれに切り替えてください。
.listen(process.env.PORT || 5000)
この方法では、ローカルでテストするときはポート5000をリッスンしますが、Heroku上でも動作します。
Node.jsに関するHerokuのドキュメントを確認することができます。 こちら .
関連
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] MongoClient v3.0使用時、db.collectionが関数でない
-
[解決済み] S3 Bucket に何かを送信しようとすると、AWS Missing credentials が表示される (Node.js)
-
[解決済み] ReferenceError: describe は定義されていません NodeJs
-
[解決済み] nvm は npm config の "prefix" オプションと互換性がありません。
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み] MongoDB でコレクションを日付順に並べるには?
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] Express.js req.bodyが未定義です。
-
[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?
-
[解決済み] Herokuの最初のデプロイに失敗した `error code=H10` 。