7章データストレージ

「5章 HTTPサーバとHTTPクライアント」、「6章 リアルタイムWebアプリケーション」で作成したToDo管理アプリケーションでは、ToDo一覧をアプリケーションのコードの中のオブジェクトとして管理してきました。この場合、ToDo一覧はアプリケーションを実行するNode.jsプロセスのメモリ上にしか存在しません。一度アプリケーションを停止すれば、アプリケーション実行中にToDo一覧に対して適用してきた変更はすべて消えてしまいます。また、clusterモジュールを使ってアプリケーションをマルチプロセス化(「4章 マルチプロセス、マルチスレッド」参照)したときに、複数プロセス間でToDo一覧を共有するのも難しくなります。

データを永続化したり、複数プロセス間で簡単に共有したりするには、Node.jsプロセスとは独立したデータストレージが必要になります。本章ではデータストレージとして一般的ににどのようなものがあるかを紹介し、いくつかのデータストレージについてそれをNode.jsでどのように扱うか、実際にToDo管理アプリケーションに組み入れながら学びます。

7.1 データストレージに対する操作の抽象化

本章では複数種類のデータストレージを扱うコードを書くことになりますが、実装のコストを最低限にするため、データストレージを操作する箇所以外は同じコードを使い回します。コードを効率的に使い回すため、データストレージに対する操作をインタフェースとして抽象化し、データストレージごとにこのインタフェースの実装を用意します。使い回したいアプリケーションのメインのコードでは直接データストレージを操作する処理は書かず、この抽象に依存することで、データストレージ操作の実装の置換だけで簡単にデータストレージを切り替えられるようにします( ...

Get ハンズオンNode.js now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.