LoginSignup
1
0

More than 1 year has passed since last update.

コマンドプロンプトでnode.js+Express運用時に停止してしまう

Last updated at Posted at 2021-11-22

Node.js + Express がなぜか止まっている

手軽にWebサーバが立てられるこの環境に重宝しています。
staticに公開フォルダを指定すれば、画像でもテキストファイルでもhttpで出せるなんて、ありがたい。

フロントエンドVue.js、バックエンドNode.js+Expressで開発中に、途中でいいから公開して使わせてと言われて、テストもろくにできていないものを公開することになった時、問題が発生したため、備忘録として、ここに記載することにした。

結論から言うと、Node.jsとか関係ない、コマンドプロンプトの問題というオチです。

環境

  • フロントエンド
    • node.js 16.13.0
    • Vue.js 2.6.11
    • express 4.16.1
  • バックエンド
    • node.js 16.13.0
    • express 4.16.1
  • (簡易公開時)実行環境
    • Windows 10 Enterprise 20H2
    • コマンドプロンプトを起動し、フロント/バックともに nodeを起動

問題

  • 何かをきっかけにバックエンドのnodeの応答がなくなる
  • 何がきっかけなのか公開側では判断できず、httpサービス利用者からの指摘で判明。確かに応答がないため、Node.jsの再起動をするの繰り返しをしていた。(無知だった。)

原因

コマンドプロンプトでクリックしたことにより、「簡易編集モード」になり、コマンドプロンプト上のバッチ処理が一時停止になって、動けなくなったのが原因だった。
コマンドプロンプトが「簡易編集モード」であるか否かは、タイトル表示に「選択」とあるかどうかで判断できる。(が、わかりづらい)

プロンプト.png

対処方法

「簡易編集モード」に移行させない設定にする。設定方法は、以下の記事にお任せ。

フロントエンドでは現象は起きない

で、解決したのだけども、フロントエンド側は簡易編集モードでも、httpでリロードがかかっても問題なくSPAのページを表示してくれる。キャッシュが残っているからなのか、Node.js+ExpressのStaticフォルダを指定しているとこの問題が起きないのか、切り分けはできていない。なんでだろう。わかったら、追記する予定。

最後に

  いいかどうかは別として、スクリプトのセットをエンドユーザに提供して、エンドユーザ自身にNode.jsサーバを立ててもらう運用があり、この問題があることを知らないと私みたいに「なぜか動かない」という状態になってしまうのが難点。
  それから、この問題のためにググったけど、Node.js初心者であったこともあって、Node.jsの仕様との切り分けに手間取り、簡易編集モードにたどり着くのに時間がかかった。コマンドプロンプトの側から検索をかけても、PAUSEコマンドの仕様の紹介ページが多く引っかかったのも悔やまれる。
  わかってしまえば単純だね。しかし、サイレントにバッチ処理を止めるこの仕様はなんなんだ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0