20210410のNode.jsに関する記事は3件です。

【Railsサーバー】Address already in use - bind(2) for "127.0.0.1" port 8080 (Errno::EADDRINUSE)の対処方法

症状 RailsAPIモードとReactを使用中に、npmstartとRailsサーバーを起動しようとすると、Railsサーバーを起動したターミナルに下記のエラーメッセージが表示されてしまいました。 ターミナル rails s => Booting Puma => Rails 6.0.3.6 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.7 (ruby 2.6.3-p62), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development Exiting Traceback (most recent call last): 40: from bin/rails:3:in `<main>' 39: from bin/rails:3:in `load' 38: from /home/ubuntu/environment/プロジェクト名/bin/spring:15:in `<top (required)>' 37: from /home/ubuntu/environment/プロジェクト名/bin/spring:15:in `require' 36: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>' 35: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load' 34: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/bin/spring:49:in `<top (required)>' 33: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/lib/spring/client.rb:30:in `run' 32: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call' 31: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call' 30: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load' 29: from /home/ubuntu/environment/プロジェクト名/bin/rails:9:in `<top (required)>' 28: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' 27: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' 26: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' 25: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' 24: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' 23: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/commands.rb:18:in `<main>' 22: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/command.rb:46:in `invoke' 21: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/command/base.rb:69:in `perform' 20: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch' 19: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command' 18: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/thor-1.1.0/lib/thor/command.rb:27:in `run' 17: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/commands/server/server_command.rb:138:in `perform' 16: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/commands/server/server_command.rb:138:in `tap' 15: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/commands/server/server_command.rb:147:in `block in perform' 14: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/railties-6.0.3.6/lib/rails/commands/server/server_command.rb:39:in `start' 13: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/rack-2.2.3/lib/rack/server.rb:327:in `start' 12: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/rack/handler/puma.rb:73:in `run' 11: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/launcher.rb:172:in `run' 10: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/single.rb:98:in `run' 9: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/runner.rb:161:in `load_and_bind' 8: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:90:in `parse' 7: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:90:in `each' 6: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:106:in `block in parse' 5: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:222:in `add_tcp_listener' 4: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:222:in `each' 3: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:223:in `block in add_tcp_listener' 2: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:229:in `add_tcp_listener' 1: from /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:229:in `new' /home/ubuntu/.rvm/gems/ruby-2.6.3/gems/puma-4.3.7/lib/puma/binder.rb:229:in `initialize': Address already in use - bind(2) for "127.0.0.1" port 8080 (Errno::EADDRINUSE) 最後の行にあるエラーメッセージを翻訳すると「`initialize ':アドレスはすでに使用されています」でした。 解決方法 npmのほうでも、同様のポート番号を使っていたようです。 npmでは起動時にすでにポートを使用していると、違うポートを使うかを聞いてくるので、Railsサーバーを起動後にnpmstartを実施したら、エラーが表示されなくなりました。 rails側でポート番号を変更する方法についてはこちらに記載があったので、ご参考ください。 https://qiita.com/Tocyuki/items/de66987ead2183e4fcae 参考 rails sが立ち上がらない・・・ https://qiita.com/kamyu/items/1d39d4e57f04a3ad6b0c RailsでポートとIPアドレスを指定する方法 https://qiita.com/Tocyuki/items/de66987ead2183e4fcae
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Base64 変換

Base64 変換についてまとめてみました。 Python3 の例 encode01.py #! /usr/bin/python # import base64 # data_in = 'こんにちは' bytes_in = data_in.encode() # encoded = base64.b64encode(bytes_in) print(encoded) decode01.py #! /usr/bin/python # import base64 # data = b'44GT44KT44Gr44Gh44Gv' decoded = base64.b64decode(data) str_out = decoded.decode() print(str_out) # Node.js の例 encode01.js #! /usr/bin/node // --------------------------------------------------------------- // encode01.js // // Apr/10/2021 // // --------------------------------------------------------------- 'use strict' // --------------------------------------------------------------- console.error ("*** 開始 ***") const data_in = 'こんにちは' const buffer = new Buffer.from(data_in) const string = buffer.toString('base64') console.log(string) console.error ("*** 終了 ***") // --------------------------------------------------------------- decode01.js #! /usr/bin/node // --------------------------------------------------------------- // decode01.js // // Apr/10/2021 // // --------------------------------------------------------------- 'use strict' // --------------------------------------------------------------- console.error ("*** 開始 ***") const data_in = '44GT44KT44Gr44Gh44Gv' const string = Buffer.from(data_in,'base64') console.log(string.toString()) console.error ("*** 終了 ***") // --------------------------------------------------------------- Go の例 encode01.go package main import ( b64 "encoding/base64" "fmt" "os" ) func main() { fmt.Fprintf (os.Stderr,"*** 開始 ***\n") data := "こんにちは" sEnc := b64.StdEncoding.EncodeToString([]byte(data)) fmt.Println(sEnc) fmt.Fprintf (os.Stderr,"*** 終了 ***\n") } decode01.go package main import ( b64 "encoding/base64" "fmt" "os" ) func main() { fmt.Fprintf (os.Stderr,"*** 開始 ***\n") data_in := "44GT44KT44Gr44Gh44Gv" uDec, _ := b64.URLEncoding.DecodeString(data_in) fmt.Println(string(uDec)) fmt.Fprintf (os.Stderr,"*** 終了 ***\n") } コマンドでの変換 エンコード 入力データ a01.txt こんにちは 実行結果 $ base64 a01.txt 44GT44KT44Gr44Gh44Gv デコード 入力データ b01.txt 44GT44KT44Gr44Gh44Gv 実行結果 $ base64 -d b01.txt こんにちは
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

husky v5 で消耗している人には simple-git-hooks がお薦め

Git の Hook を扱う husky というライブラリがあり、大変お世話になっていた。が、 v5 が登場してから、設定変更を余儀なくされた。 v4 とは大きく異なる設計思想のため、私達は今まで書いていた設定ファイルを変え、 .husky ディレクトリを作成し、 husky のコマンドドキュメントを読んで、確認した。 正直 husky v5 のこの変更には失望した。もちろん正当な理由が合ったのだとは思うが、このようなツールの設定変更に時間を取られたくないと思った。このようなツールにはドキュメントが存在しないくらいの方がちょうどいいと思った。なんでこんな大きなドキュメントがあるのか不思議に思った。 なんか同僚の PC で pre-commit フックが動いてないっぽい。そんでコードがフォーマットされてなくてイライラする。 OSS にプルリクくれる人にも申し訳ない。 しかも husky の変更は個人的に改悪だと思った。 .husky ディレクトリを作成したり、 husky install で何が行われるのか? .husky の中にある謎のファイル _ は何なのか? しかも、 Husky は 勝手に .git/config を変更するから、他のツールと併用すると面倒なことになりそう。 自分はただ単に git commit の前に Prettier を実行したいだけなのに、なぜこんなことになってしまったんだ。 そこで見つけたのが simple-git-hooks 超かんたん。基本これで終わり。 yarn add -D simple-git-hooks package.json "scripts": { "prepare": "simple-git-hooks" }, "simple-git-hooks": { "pre-commit": "npx lint-staged" } あーもうこれで生きてくわ。これで良い。これだけで良い。 ちなみに husky から移行する時は、下記コマンドを実行して husky が 勝手に 変更した Git の設定をもとに戻そう。 yarn remove husky rm -rf .husky git config core.hooksPath .git/hooks/
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む