Express(Node.js)でMongoDBからデータを取得し、表示させる
前回の記事ではMongoDBのデータベースに接続するところまで作成しました。この記事では実際にデータベースから値を引き出し、ブラウザ上に表示させていきます。データベースにはフォームで値を保存できるようにしたいのですが、今回はデータを直接データベースに格納し、取り出すところをメインとします。ではみていきましょう。 データベースの作成 MongoDBの起動 まずはMongoDBにデータベースを作成します。ターミナルに「mongo」と打ち込み、MongoDBを起動して下さい。 これでMongoDBが起動しました。ここでコマンドを打ち込んで、データベースを操作していきます。 MongoDBのインストールがまだの方は以下のサイトを参考にしてみて下さい。 MACにMongoDBをインストールする https://reffect.co.jp/windows/mac-mongodb-install#Homebrew MongoDBの基本的な操作方法 ここではMongoDBの基本的な操作方法を解説します。 コマンド一覧表示 help データベース一覧表示 show dbs データベースへの切り替え(新規に作成する)use データベース名 コレクション作成 db.createCollection(“コレクション名”) データベースの情報表示 db.stats() データベースの消去 db.dropDatabase() コマンド一覧を表示 このコマンドは、MongoDBで使用できるコマンドの一覧を表示してくれます。 データベース一覧を表示 このコマンドは作成したデータベースの一覧を表示させます。デフォルトで「admin」「config」「local」の名前がついたデータベースが既にあるかもしれません。 作成したデータベースへ切り替える(新規に作成する) 「use」の後ろにデータベース名を記述します。もしこの名前のデータベース名が存在しない場合、新規で空のデータベースを作成してくれます。ここでは仮に「mongo_user_db」に移動(新規作成)しましょう。 コレクションを作成する データベース内にコレクションが存在しない場合、「show dbs」を行っても、新規作成したデータベースが表示されません。データを格納できるコレクションを作成しましょう。 データベースの情報表示 今操作しているデータベース名やコレクション数など各種情報を見ることができます。 データベースの消去 アクセスしているデータベース上で上記のコマンドを実行するとそのデータベースを消去することができます。 コレクションにデータを追加する 他にもコマンドはあるのですが今回は説明を省きます。では実際にコレクションに値を保存しましょう。キーとその値を指定して格納します。 このコマンドでは名前が「users」のコレクションに、キーが「name」「age」「id」のドキュメントを格納しています。今回はこのドキュメントを取得し、ブラウザに表示させます。1行だと物足りないので、値を変えて数行格納しておきましょう。また以下のコマンドで全件表示させることができます。 これで5つのドキュメントを格納できました。それではいよいよExpressでMongoDBに接続し、値をブラウザに表示させます。 データベーを終了コマンドは「exit」なのですが、データベースとの接続を終了してしまうと、Node.jsで接続できなくなってしまうので、ターミナルはそのまま維持し、新しいウィンドウでターミナルを立ち上げて下さい。新しいウィンドウでExpressの実行を行いましょう! データベースから値を取得し、ブラウザに表示させる 前回に引き続き、「page_a.js」、「page_a.ejs」および「app.js」を修正していきます。前回の記事では、「app.js」に接続するためのコードを記述しましたが、今回は「/page_a」にGETリクエストした時にデータベースと接続し、値を引き出すように処理を変更します。 まずは「app.js」のデータベースに接続しているコードを消去します。以下のコードを消去して下さい。 このコードは「page_a.js」に記述します。次に「page_a.js」のGETリクエスト時の処理を記述します。コードは以下の通りです。 データベースへの接続 9行目〜18行目 7行目から18行目までは「/page_a」にGETリクエストした時に、先ほど作成したデータベース「mongo_user_db」に接続しています。接続方法の詳しい説明は前回の記事で確認して下さい。2行目の「mongoose」のロードも忘れないようにしまよう。 Express(Node.js)でMongoDBからデータを取得し、表示させる http://tamon-blog.verse.jp/?p=194 スキーマの定義 20行目〜25行目 このスキーマはコレクション内のドキュメントの形状を定義しています。今回は「name」「age」「id」を定義しており、それぞれの型が「String」「Number」「Number」になっています。定義できる型の種類は以下の通りです。 String Number Date Buffer Boolean Mixed ObjectId Array Decimal128 … Continue reading Express(Node.js)でMongoDBからデータを取得し、表示させる
Copy and paste this URL into your WordPress site to embed
Copy and paste this code into your site to embed