プログラミング初心者である筆者が受講しているオンラインプログラミング教室の先生曰く、JavaScriptの次に学ぶ言語のオススメ」がNode.js。
先生のアドバイスに従い、Node.jsを理解するため、関連書籍を探し回っています。
購入した中で、初心者である筆者が実際に最後まで読み切った本が「Node.js超入門」。
同様にNode.js関連書籍を探している方に向けて、内容を紹介しつつ感想を共有します。
超初心者がNode.jsを理解する
掌田先生の著書、プログラミング先生に勧められる前にも別の本を読んだことありまして、これが3冊目です。
とにかく丁寧に”初心者・初学者だけ”をターゲットに書く方針の書籍は、私のような初学者にはマッチしていました。
だからこちらの「Node.js超入門」も筆者のような「初心者に優しい」を期待して読み始めました。
そこはまったく正解です。
「Node.js超入門」の超概要
本の内容を書いてしまうのはまずいので、筆者の超要約を示します。
内容の一端を見ていただければと。
プログラミングは「習う」より「慣れろ」
ひたすら打ち込んでるだけでいいんだろうかと迷ったりするが、本書「Node.js超入門」がこう言っています。
プログラミングは「習う」より「慣れろ」 多くの人は勘違いをしています。
ログラミングというのは「知識」の問題なのだと。
が、実はそうではありません。どちらかと言うと「慣れ」の問題だったりするのです。
そもそもNode.jsとは?
Node.js = JavaScript のランタイム環境
Node.jsは、 JavaScript 言語のランタイム環境(プログラムを実行するための環境) です。
Node.jsは v8というプログラムを使って作られています。 v8は JavaScript で書かれたスクリプトを読み込んで実行できます。
このため v8をベースに開発されたNode.jsは、Webブラウザの中ではなく、単独で JavaScript のプログラムを実行できるようになっています。この仕組みにより JavaScript による開発環境が実現しています。
Node.jsのプログラミングはオブジェクトの知識がないとわかりません。Node.js では、様々な機能オブジェクトとして用意しています。
このオブジェクトを作成したり、オブジェクト内にある機能(メソッド)を呼び出すことで動いています。このためオブジェクトに関する知識がないと、具体的なプログラミングは理解できないのです。
Node.jsのプログラムの流れ
- http というオブジェクト(インターネットアクセスの機能を提供)を読み込む
- http からサーバーのオブジェクトを作る
- サーバーオブジェクトを待ち受け状態(サーバーに外部からアクセスしてくるのを待ち続ける状態)にする
その他
- ejsの扱いについて、http://localhost:3000/のあとに何を付けても必ずindex.ejsの内容が表示される。
- GETとPOST
- WebサイトにアクセスするときWebブラウザはGETでアクセス→いつ、どこからどうアクセスしても常に同じ結果が返される。
- フォームの送信ではPOST→そのとき、その状況での表示を行う場合
「Node.js 超入門」もくじ
Chapter1 Node.jsの基本を覚えよう!
1-1 Node.jsを準備しよう
- Webサイトと「Web開発」の違い
- サーバー開発って?
- フレームワークの登場!
- フレームワークだと何が「楽」なの?
- Node.jsとは?
- Node.jsの2つのバージョン
- Node.jsをインストールしよう
- Node.jsの動作を確認しよう
- Node.jsを動かしてみよう
1-2 Visual Studio Code
- 開発ツールはどうする?
- Visual Studio Codeを使おう!
- Visual Studio Codeをインストールしよう
- Visual Studio Codeを使おう
- フォルダーを開いて編集開始!
- エディターの入力支援機能
- アプリケーションを動かそう
- この章のまとめ
Chapter2 アプリケーションの仕組みを理解しよう!
2-1 ソースコードの基本
- スクリプトファイルを作ろう
- プログラムを作る
- プログラムを実行しよう
- これよりは「オブジェクト」の知識必須!
- プログラムの流れを整理しよう
- requireとモジュールシステム
- サーバーオブジェクトを作成する
- HTMLを出力するには?
- ヘッダー情報の設定
- HTMLで日本語を表示する
- ヘッダー情報の出力をチェック!
- コンソール出力について
- 基本は、require、createServer、listen
2-2 HTMLファイルを使おう
- HTMLファイルを使うには?
- HTMLファイルを作成しよう
- ファイルを読み込んで表示する
- readFileの処理をチェック
- 関数を切り分ける
- 非同期処理ってなに?
- テキストを操作するには?
- 置換処理について
2-3 テンプレートエンジンを使おう
- テンプレートエンジンってなに?
- EJSを使おう!
- EJSをインストールする
- テンプレートを作る
- テンプレートを表示させよう
- ejsオブジェクトの基本
- プログラム側の値を表示させる
- app.jsを修正する
- renderに値を渡す
2-4 ルーティングをマスターしよう
- スタイルシートファイルを使うには?
- ルーティングという考え方
- URLオブジェクトでアドレスを調べる
- スタイルシートの読み込み処理を追加する
- 複数のページを作ろう
- この章のまとめ
Chapter3 Webアプリケーションの基本をマスターしよう!
3-1 データのやり取りをマスターしよう
- 「難しい」と「面倒くさい」
- パラメーターで値を送る
- クエリーパラメーターの取り出し方
- フォーム送信を行う
- フォームの処理を作成する
- フォームの処理を整理する
- requestとイベント処理
- 複雑な情報を整理する
- index.ejsの修正
3-2 パーシャル、アプリケーション、クッキー
- includeとパーシャル
- パーシャルを書き換える
- 別のデータを表示させる
- アプリケーション変数
- クッキーの利用
- クッキー利用の処理を作成する
- クッキーへの値の保存
- クッキーから値を取り出す
3-3 超簡単掲示板を作ろう
- 掲示板でメッセージを共有しよう
- 必要なファイルを整理する
- index.ejsテンプレートを作成する
- ローカルストレージの値の取得
- テーブルのパーシャル・テンプレート
- login.ejsを作る
- ローカルストレージに値を保存する
- スタイルシートとデータファイル
- app.jsでメインプログラムを作る
- 掲示板の使い方
- データファイルの処理について
- この章のまとめ
Chapter4 フレームワーク「Express」を使おう!
4-1 Expressを利用しよう
- Node.jsは「面倒くさい」!
- アプリケーションフレームワークと「Express」
- Expressのアプリケーション作成
- アプリケーションを作ろう
- Expressをインストールする
- アプリケーションを作成する
- プログラムを実行しよう
- Expressの基本コードを理解する
- package.jsonについて
4-2 Expressの基本をマスターする
- EJSを導入しよう
- テンプレートを作成する
- index.jsを修正する
- テンプレートのレンダリング
- スタイルシートを利用する
- index.jsを修正する
- 公開フォルダのファイルを使うには?
- 別のページを追加する
- メインプログラムを修正する
- クエリーパラメーターの利用
- フォーム送信とBody Parser
- フォームを作成する
- フォームの処理を行う
- Body Parserによるフォームの処理
- パーシャルによるテーブル表示
- トップページのapp.getを修正する
4-3 Express Generatorを使おう
- Express Generatorとは?
- Express Generatorをインストールする
- Express Generatorでアプリを作成する
- アプリケーションを実行する
- アプリケーションのファイル構成
- app.jsソースコードをチェックする
- index.jsについて
- wwwコマンドについて
- app.jsと「routes」内スクリプトの役割分け
- Webページを追加してみる
- ルーティング用スクリプトを作る
- router.getと相対アドレス
- この章のまとめ
Chapter5 値とデータをマスターしよう!
5-1 パラメーターとフォーム送信
- パラメーターを使おう
- フォームの送信について
- セッションについて
- Express Sessionを利用する
- セッションに値を保存する
5-2 サーバーからのデータ取得
- Ajaxによるデータアクセス
- jQueryの用意
- /ajaxの処理を用意する
- app.jsで/ajaxと/jqueryを用意する
- jQueryでAjaxを利用する
- 最新版jQueryを使うには?
- Webサイトからデータを取得する
- Googleのニュースを表示する
- RSS取得の流れを整理する
5-3 データベースを使おう!
- SQLデータベースとは?
- SQLiteを用意する
- DB Browser for SQLite
- データベースを設計しよう
- テーブルにデータを追加する
- SQLITE3モジュールについて
- データベースのデータを表示する
- データベースアクセスの処理を作る
- sqlite3利用の処理を整理する
- Databaseオブジェクトの使いこなしがポイント
5-4 データベースの基本をマスターする
- データベースの基本「CRUD」とは?
- レコードの新規作成
- /addの処理を作成する
- レコードの表示
- /showの処理を作成する
- レコードの編集
- /editの処理を作成する
- レコードの削除
- /deleteの処理を作成する
- 最大のポイントは「SQL」!
- この章のまとめ
Chapter6 データベースを使いこなす!
6-1 バリデーション
- バリデーションとは?
- Express Validatorについて
- Express Validatorを使ってみる
- プログラムを用意する
- Express Validatorの基本
- 用意されているバリデーション用メソッド
- チェック対象を指定するメソッドについて
- サニタイズについて
6-2 Bookshelfでデータベースを使いこなそう
- Bookshelfとは?
- knex/bookshelfのインストール
- データを取り出し表示する
- Bookshelf利用の手順を考える
- レコードを保存しよう
- 検索について
- /hello/findのルーティング処理
- ページネーションについて
- /helloをページ分けして表示する
- ページ移動のリンクを用意する
- この章のまとめ
Chapter7 アプリ作りに挑戦!
7-1 DB版ミニ伝言板
- ミニ掲示板を改良しよう
- Express Generatorでアプリを作る
- 用意するファイル類
- データベースファイルを作る
- テンプレートを作成する
- 「users」フォルダのテンプレート
- app.jsを作成する
- routers/index.jsの作成
- users.jsの作成
- home.jsの作成
7-2 Markdownデータ管理ツール
- Markdownは開発者御用達?!
- アプリケーションを作成する
- データベースファイルの作成
- テンプレートを作成する
- app.jsの作成
- index.jsの作成
- login.jsの作成
- add.jsの作成
- mark.jsの作成
- これから先は?
Addendum JavaScript超入門!
A-1 値と変数の基本
- JavaScriptは「Webブラウザの言語」ではない!
- スクリプトを書く時の注意点
- JavaScriptのスクリプトの書き方
- 別ファイルに切り分ける書き方
- 値について
- 変数について
- 「定数」もある
- 四則演算について
A-2 制御構文
- 制御構文とは?
- if文の基本形
- 条件って、なに?
- たくさんの分岐を作るswitch
- whileによるシンプルな繰り返し
- 複雑な繰り返し「for」
- 「関数」について
- 関数を作ってみる
- 戻り値を使おう
A-3 配列からオブジェクトへ!
- 配列は、たくさんの値を管理する
- 配列のためのfor文
- キーを指定する「連想配列」
- 配列に関数を入れる!
- これがオブジェクトだ!
- コンストラクタ関数って何?
- Webページのオブジェクト
- Webページを操作してみよう
- 後は応用次第?
- この章のまとめ
Node.js超入門 残念な点
例題に数箇所、タイポやミス記載若干ありました。
タイポは単純な英単語のスペルミスで、読んでてすぐ気がつくので支障はありませんでしたが。
掌田さんの著書は「みるみるプログラミングがわかる本」他、以前にも読んだことがありました。
同じようにタイポが多かったものの(失礼!)、タイポは見つかりますが「ああ、タイポか」くらいにしか思わなかったですね。
知識が有り余る方が書いた初学者用の本だからか、分かりやすく内容でタイポはカバーされていると思います。
このあたりは編集会社さんの方でちゃんと校閲してもらいたいですねえ。
おわりに「Node.js超入門」読後感
冒頭で紹介した本書を薦めてくれたオンラインプログラミング教室の先生がNode.jsの習得を勧めてくれたのが、勉強をはじめたきっかけです。
Node.jsについて分かりやすく解説している本として、いくつか先生に紹介してもらった本のうちの1つが、今回ご紹介した「Node.js超入門」でした。
確かに、初心者の私が例題をきちんと作りつつも最後まで読み切りました。
特に掲示板を作った(作れた)のはこの本を見ながら作った例題が生まれたはじめてだったもので、「あ、掲示板って作れるんだ!」と感激しました。
Node.jsのインストールからツールの使い方、一通りアプリを作るところまで網羅されており、最初の1冊としては、役立つ内容でした。
”掲示板って人間が作ってるものなんだ”っていう筆者と同等の知識レベルだった方におすすめしたい解説書です。
また、英語でNode.jsを学ぶならこちらの書籍という選択肢もあります。