Menu
CoddyTech

MongoDBへの接続

CoddyのNode.jsジャーニー「MongoDBによるデータベース」セクションの一部。レッスン 3/29。

プログラムはクライアントオブジェクトを通じてMongoDBに接続します。MongoClientをインポートし、接続先アドレスを指定してクライアントを作成します。以下のアドレスは、同じコンピューター上のMongoDBを指します:localhost。27017は、そのデータベースサービスが接続を待ち受けるポート番号です。

const client = new MongoClient('mongodb://localhost:27017');
const db = client.db('shop');
const orders = db.collection('orders');

最初の行ではクライアントを設定し、次の2行ではデータベースとコレクションを選択します。これらの行はレコードを読み込みません。Coddyでは、Runのたびにリセットされる練習用データベースによって接続が提供されます。通常のMongoDBのデプロイでは、アプリケーションを再起動してもデータが保持されます。

リクエスト間で再利用できるように、クライアントはモジュールレベルで作成します。実際のドライバーでは、リクエスト関数の中でクライアントを作成すると、リクエストごとに新しい接続プールが作成されます。

challenge icon

チャレンジ

簡単

connection.jsを編集します。プレースホルダーを、mongodb://localhost:27017を使うクライアント、shelfデータベース、およびそのbooksコレクションに置き換えます。

これらの値はselectBooks()の外側で作成します。その関数が選択したコレクションを返すようにして、すべてのリクエストで再利用できるようにします。用意されているルートがコレクションを読み取ります。「実行」を試してください。GET /resultでDune、Kindred、Emmaが一覧表示されるはずです。挿入やルートのコードは必要ありません。

用意されているGET /reuseルートは、呼び出しを繰り返して同じコレクションハンドルが返されると、{"same":true}を返します。

自分で試してみよう

import { MongoClient } from 'mongodb';
// クライアントを作成し、データベースを選択して、このプレースホルダーを置き換えてください。
const books = null;
export function selectBooks() {
    return books;
}

MongoDBによるデータベースのすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド