Node.js学習記 その1
Node.jsの学習を始めた
Gatsbyブログの制作がひと段落したのでNode.jsの学習を始めた。僕の学習計画は「Gatsbyを理解すること」が中心に置かれている気がする。というのも、そもそもReactやJavaScriptを学びたいと思ったのもGatsbyに出会ったからだし、今回Node.jsを学びたいと思ったのもgatsby-node.js
で何が起こっているのかよくわからなかったというのがあるからだ。
前からサーバーサイドをかじってみたいという気持ちはあった。3ヶ月ほど前にRuby on RailsをProgateでやったことがあるが何も覚えていない。サーバーサイドはRubyにPythonなど色々な言語がある。僕はJSが好きなので、JSでできるのならそうしようと、ひとまずNodeを学ぶことを決意した。Pythonはweb開発以外にもできることが多そうなので気になってはいるが、しばらくは見送りたい。
まだ学習して間も無いが、学んだことをまとめておきたい。
Global & Core メソッド
console.log
などはインポートしなくても使えるGlobalメソッドで、インポートしなくてもすぐに使用することができる。しかし他の多くのメソッドはCoreメソッドと言われ、使用する際にはかならずインポートしなくてはならない。
これはすごく単純なコードだが、「自分が書いたコードがファイルを作成する」のに少し感動した。
npm
毎度おなじみのnpm i blabla
。これはもうJSやReactのプロジェクトである程度慣れているが教科書的なことを書いておく。
- 初期化
ここでいくつかの質問に答える。基本は全てenterでOK。 プロジェクトのルートディレクトリにpackage.jsonとnode_moduleが作成される。
- パッケージのインストール
を実行するとpackage.jsonとnode_modulesにインストールしたパッケージが追加される。
- node_modulesとpackage-lock.json
これらはnpmが管理してくれるので手動で決して編集するべきではない。 node_modulesにあるコードも全てJSで書かれているので覗いてみたりするが、よくわからない。パッケージとかどうやって作るんだろう。
JsonとObject
JSのデータの種類の中で配列とオブジェクトはそれなりに親しんできた。Node.jsで初めてjsonを触ったのでデータについて書き残しておきたい。
この状態はバイナリデータのままなので
<Buffer 7b 22 6e 61 6d 65 22 3a 22 47 75 6e 74 68 65 72 22 2c 22 70 6c 61 6e 65 74 22 3a 22 45 61 72 74 68 22 2c 22 61 67 65 22 3a 35 34 7d>
みたいな数列が得られる。これはJSで使えない。
次にstringifyしてみると。JSONの形で得られる。 Jsonはフロントとバックエンドでデータのやりとりをするのに使われるデータの種類で、JSのエコシステムに限らずrubyやpythonでも扱うことができる。
最終的にパースすると、オブジェクトが得られる。 こういうふうにオブジェクトの形ならばデータの編集も容易だ。
新しく使ったパッケージ
コマンドラインパーサー。ヘルプメッセージなどを追加できる。
ターミナルの文字を見やすいように修飾してくれる。
まとめ
基本的にはJSを書いているだけという印象。httpとかに入ると難しく感じるのかな。