はじめに
私は,文化祭に向けて音ゲーを作っており,ゲーム本編は動作したのであとはデプロイして展示するだけだったのだが...
事件は起こる。そうだ,Heroku無料枠廃止である。今すぐにというわけでは無いものの,文化祭終了後にオープンベータとして一般公開することを考えていたので,とりあえず無料枠が使えそうなPaaSを...と探していたら見つけたのが,そう,renderである。
とりまデプロイ
某日深夜2時
これで出展できるぞ~!あとはデプロイだけや!
まずプルリク立ててmasterブランチにマージしとこ...
んじゃデプロイするか...
1時間後...
あー何回やってもデプロイできひんやんけ!どうなっとるんや!
(renderに関する情報を探すも,Node.js+Expressに関する日本語情報は少ない。かと言って深夜三時。英語読む気になれへん)
取り敢えず寝よ...今日劇のリハあんねんな...
前日
リハ終わったし展示のセッティングするか...それにしても暑いな...
おっと,その前にもう一回試すか(ここで学校のPCからrenderで再デプロイを試す)
うーん...(デプロイできない)
(1時間後,もともと使用していたrepl.itで走らせ,その日は帰る)
当日
あー劇も全力でやり切れたし,他のクラスの劇も楽しかったな~
有志の部もかっこよかったし()
ところでもう時間無いな,展示は後日回るんかな()
帰宅後
泣きのもう一回やるか...やっぱダメか...
(ここでひらめく)もしかしてPortが問題ちゃうか?
解決策
//...略
- const port: number = 3000;
+ const port: number = Number(!!process.env.PORT) || 3000;
//...略
これだけでした!
とっても簡単!
ちなみにprocess.env.PORTの前に何故!!をつけるかというのは,PORTがundefinedの場合,変換されるとNaNになりますが,!!をつけると0になります(多分booleanになるんじゃないかな)。暗黙の型変換,賢い。
でも...もう週末だしPCはセッティング済みだしパワポは旧リンク貼ってるし....
まだ闘いに終わった訳では無いのだ。
追記
デプロイしたあとのログを確認するとPort10000でした。最初からこっち使ってもいいかもね。
おしまい