Nodeクックブック
- David Mark Clements 著、和田 祐一郎 訳
- 2013年02月 発行
- 380ページ
- ISBN978-4-87311-606-8
- フォーマット Print PDF
- 原書: Node Cookbook
3,740円
書籍のご注文はオーム社サイトへ
内容
本書は、Node.jsを使っての簡単なWebサーバの構築にはじまり、Webアプリケーションやコマンドラインアプリケーションの構築、そして自作Nodeモジュールの開発までをスムーズに学習できるように構成しています。MySQLやMongoDB、CouchDB、Redisといった各種データベースとのインタフェイスや、WebSocketの組み込み方、SMTPなどのプロトコルとのインタフェイスといった基本的な事項を学びます。さらにデータストリームの処理方法やセキュリティを考慮した実装、そして開発したアプリケーションを本番環境で動作させるまでのさまざまなレシピを掲載しています。
Nodeの主要なコアモジュールはもちろん、さまざまなシーンで利用するサードパーティモジュールを広く紹介しており、Express 3に対応した本書は、Nodeを深く知りたいエンジニア必携の一冊です。
翻訳者によるサポートページ
関連書籍
目次
目次 訳者まえがき はじめに 1章 Webサーバを立てる レシピ1.1 URLルーティングを設定する ミニレシピ1.1.1 複数階層コンテンツのルーティング ミニレシピ1.1.2 クエリストリングを解析する レシピ1.2 スタティックファイルを配信する ミニレシピ1.2.1 予期しないFaviconリクエストに対応する レシピ1.3 コンテンツキャッシュによる高速配信 ミニレシピ1.3.1 コンテンツの変更を反映する レシピ1.4 ストリーミングによりパフォーマンスを最適化する ミニレシピ1.4.1 システムをバッファオーバーフローから守る レシピ1.5 ファイルシステムをハッキングから守る ミニレシピ1.5.1 ホワイトリスト ミニレシピ1.5.2 node-static 2章 HTTPオブジェクトをより深く レシピ2.1 POSTデータを処理する ミニレシピ2.1.1 connect.bodyParserを使ってPOSTデータを扱う レシピ2.2 アップロードファイルを受信する ミニレシピ2.2.1 formidableを使ってPOSTデータの内容をすべて受信する ミニレシピ2.2.2 formidableでファイル名を保存する ミニレシピ2.2.3 PUTでアップロードする レシピ2.3 NodeをHTTPクライアントとして使用する ミニレシピ2.3.1 POSTリクエストを送る ミニレシピ2.3.2 multipartファイルアップロードを行う レシピ2.4 帯域制限を実装する ミニレシピ2.4.1 中断されたダウンロードを再開する 3章 データのシリアル化 レシピ3.1 オブジェクトをJSONに変換する ミニレシピ3.1.1 JSONPレスポンスを返す レシピ3.2 オブジェクトをXMLに変換する ミニレシピ3.2.1 配列や関数を含んだオブジェクトをXMLに変換する ミニレシピ3.2.2 XMLの属性値を生成する ミニレシピ3.2.3 属性値宣言とテキスト レシピ3.3 Ajaxによるブラウザ・サーバ間のデータ転送 ミニレシピ3.3.1 シリアル化したデータをクライアントからサーバに送信する レシピ3.4 リアルデータの処理:トレンドツイートを取得する ミニレシピ3.4.1 Google Hot TrendsとTwitterを組み合わせる 4章 データベース接続 レシピ4.1 CSVファイルを出力する ミニレシピ4.1.1 CSV要素をカスタマイズする ミニレシピ4.1.2 CSVファイルを読み込む ミニレシピ4.1.3 CSVをストリームとして処理する レシピ4.2 MySQLサーバと接続し、SQL文を実行する ミニレシピ4.2.1 ユーザ入力をクリーニングしてSQLインジェクション攻撃を防ぐ ミニレシピ4.2.2 MySQLサーバからSQL文の実行結果を受け取る レシピ4.3 MongoDBとデータをやりとりする ミニレシピ4.3.1 インデックスとアグリゲーション ミニレシピ4.3.2 ソートとリミット、モディファイアでアップデート レシピ4.4 Mongoskinを使ってMongoDBに接続する ミニレシピ4.4.1 コレクションバインディング レシピ4.5 Cradleを使ってCouchDBにデータを格納する レシピ4.6 Cradleを使ってCouchDBからデータを取得する ミニレシピ4.6.1 CouchDBの管理者ユーザを作成する ミニレシピ4.6.2 CouchDBの管理者ユーザのみがデータ変更を行う レシピ4.7 CouchDB Changes StreamにCradleで接続する レシピ4.8 Redisとデータをやりとりする ミニレシピ4.8.1 hiredisでredisモジュールをスピードアップする ミニレシピ4.8.2 パイプラインコマンドでネットワークレイテンシを克服する レシピ4.9 RedisでPubSubを実装する ミニレシピ4.9.1 Redisへのアクセス認証 ミニレシピ4.9.2 外部からの不正な接続からRedisを守る 5章 Websocketを使ってAjaxを超える レシピ5.1 WebSocketサーバを生成する ミニレシピ5.1.1 WebSocketクライアントを生成する レシピ5.2 socket.ioを使ったシームレスなフォールバック ミニレシピ5.2.1 カスタムイベント ミニレシピ5.2.2 ネームスペース レシピ5.3 socket.io越しにコールバック関数を実行する ミニレシピ5.3.1 nowjsを使ってクライアントとサーバで関数をシェアする レシピ5.4 socket.ioでリアルタイムウィジェットを作成する ミニレシピ5.4.1 Redisと組み合わせてスケールアウトに備える ミニレシピ5.4.2 開発ツールとしてのWebSocket 6章 Expressで開発をスピードアップ レシピ6.1 Expressプロジェクトを作成する ミニレシピ6.1.1 app.jsの内容を読む ミニレシピ6.1.2 routes/index.jsの内容を読む レシピ6.2 環境の定義と設定 ミニレシピ6.2.1 新たな環境を設定する ミニレシピ6.2.2 NODE_ENVを永続的に変更する レシピ6.3 ダイナミックURLルーティング ミニレシピ6.3.1 ルートのバリデーション ミニレシピ6.3.2 オプションルート ミニレシピ6.3.3 ワイルドカード レシピ6.4 テンプレート(Jade) ミニレシピ6.4.1 他のテンプレートエンジンを使用する ミニレシピ6.4.2 EJSテンプレートエンジン ミニレシピ6.4.3 JadeにJavaScriptを挿入する レシピ6.5 CSSプリプロセッサを使う(Stylus) ミニレシピ6.5.1 Stylus:mixinのネストとrestパラメータ ミニレシピ6.5.2 Stylus:色を操作する ミニレシピ6.5.3 LESSを使う レシピ6.6 Expressによるセッション管理[応用] ミニレシピ6.6.1 サイト全体のセッション管理を行うミドルウェアを作成する ミニレシピ6.6.2 フラッシュメッセージ レシピ6.7 ExpressでWebアプリケーションを構築する[応用] ミニレシピ6.7.1 abを使ってベンチマークをとる ミニレシピ6.7.2 loggerをカスタマイズする 7章 セキュリティ、暗号化、認証 レシピ7.1 ベーシック認証を実装する ミニレシピ7.1.1 Express/Connectでベーシック認証を実装する レシピ7.2 cryptoモジュールでパスワードをハッシュ化する ミニレシピ7.2.1 HMACでユニークなハッシュ値を生成する ミニレシピ7.2.2 PBKDF2で強固なハッシュ値を生成する レシピ7.3 ダイジェスト認証を実装する ミニレシピ7.3.1 認証領域からのログアウト レシピ7.4 HTTPSサーバを立てる ミニレシピ7.4.1 ExpressでHTTPSを使う ミニレシピ7.4.2 SSL/TLSでベーシック認証を安全に運用する レシピ7.5 クロスサイトリクエストフォージェリを予防する ミニレシピ7.5.1 Jadeカスタムコンパイラでフォームを自動的に保護する ミニレシピ7.5.2 クロスサイトスクリプティング(XSS)脆弱性を取り除く 8章 ネットワークサービスの実装 レシピ8.1 メールを送信する ミニレシピ8.1.1 HTMLメールを送信する ミニレシピ8.1.2 添付ファイルを送る レシピ8.2 SMSを送信する ミニレシピ8.2.1 processedイベントリスナを利用する ミニレシピ8.2.2 自動で電話をかける レシピ8.3 TCP通信を行う ミニレシピ8.3.1 ポートフォワーディング ミニレシピ8.3.2 pcapを使いTCPトラフィックを監視する レシピ8.4 SMTPサーバを立てる ミニレシピ8.4.1 外部のSMTPサーバからメールを受信する レシピ8.5 名前ベースバーチャルホストを実装する ミニレシピ8.5.1 Expressでバーチャルホスティング ミニレシピ8.5.2 Server Name Indication(SNI) 9章 自分のNodeモジュールを作成する レシピ9.1 モジュールAPIを決定し、テストスクリプトを作成する ミニレシピ9.1.1 should.jsでユニットテストを行う レシピ9.2 モジュールのモックアップを作成する ミニレシピ9.2.1 モジュールのサンプルコードを記述する レシピ9.3 モジュールをリファクタリングする ミニレシピ9.3.1 stat関数をmp3datオブジェクトに追加する ミニレシピ9.3.2 複数のモジュールインスタンスの生成を許可する レシピ9.4 モジュールAPIを拡張する ミニレシピ9.4.1 サンプルコード:STDINストリーム ミニレシピ9.4.2 サンプルコード:PUTアップロードストリーム ミニレシピ9.4.3 statメソッドとstatStreamメソッドを統合する ミニレシピ9.4.4 EventEmitterを統合する レシピ9.5 モジュールをnpmレジストリにアップロードする ミニレシピ9.5.1 npm linkを使ってレジストリに登録せずにモジュールを使用する ミニレシピ9.5.2 .npmignore、モジュールのバージョン変更 10章 本番環境に展開するために レシピ10.1 アプリケーションを80番ポートで待機させる ミニレシピ10.1.1 nohupの代わりにscreenで起動する ミニレシピ10.1.2 authbindを使って80番ポートにバインドする ミニレシピ10.1.3 http-proxyを使って80番ポートで複数のプロセスをホストする レシピ10.2 Upstartで自動的に再起動する ミニレシピ10.2.1 Upstartのrespawn制限違反を検出する ミニレシピ10.2.2 foreverモジュールで自動的に再起動する レシピ10.3 Gitを使った継続的デプロイ ミニレシピ10.3.1 アップデート時に依存モジュールをサーバ側で構築する ミニレシピ10.3.2 GitフックスクリプトをNodeで記述する レシピ10.4 PaaSプロバイダでホスティングする ミニレシピ10.4.1 自分のドメイン名でアプリケーションにアクセスする ミニレシピ10.4.2 データベースを準備する 索引