【Node.js】ExpressとMongoDBを繋げる
今回は、Express と MongoDB を繋げます。
コードは、前々回のコードを使用します。
【Node.js】Expressで、JSONデータを編集する方法
views/index.ejs
views/menu.ejs
views/menu-detail.ejs
views/menu-edit.ejs
index.js
models/menu.js
controllers/menus.js
routes/index.js
routes/menu.js
MongoDB をインストールする
まずは、MongoDB をインストールします。
ターミナルを開いて、npm install —save mongodbを実行します。
インストール完了後、utils フォルダを作成し、その中に database.js を作成します。
database.js にmongodbを呼び出します。
mongodbのmongoClientを使います。
dbConnect関数を作ります。
dbConnectの中にMongoClientのconnectを使用します。
MongoDB を開き、Databases の『Connect』をクリックします。
『Connect your application』をクリックします。
②Add your connection string into your application code 内のコードをコピーします。
コピーしたコードを、MongoClient.connect()ないに貼り付けます。
貼り付けたコード内の<password>は、前回 Database Access でユーザー設定した際のパスワードを入力します。
接続がうまくいったら、console.log()で『MongoDb Connected』と表示し、内容をコールバックするように設定します。
また、エラーが起こったら、エラーを表示するようにします。
dbConnectをエクスポートします。
index.js でdbConnectを呼び出します。
index.js のapp.listenに渡すことで、実行時に MongoDB と接続するようにします。
一度、サーバーを起動してみます。
無事、起動することができました。
次は、データを MongoDB に保存してみます。
utils フォルダの database.js に『_db』を作成します。
MongoDB に接続できたら、_dbにデータベースを保存するようにします。
データベースを取得する関数を作ります。
データーベースがある場合は、_db が返され、データーベースがない場合は、『データベースがありません』と返すようにします。
getDb関数をエクスポートします。
dbConnectも修正しておきましょう。
エクスポートが変わったので、index.js のdbConnectの呼び出しも修正します。
models フォルダの menu.js を開きます。
Menuクラスのconstructorにある、idは必要ないので、削除します。
controllers フォルダの menujs にあるpostAddMenuのidも必要ありません。
models フォルダの menu.js にgetDBを呼び出します。
Menuクラスのsave内容を一旦削除します。
getDB のcollectionを呼び出します。
コレクションの名前は、『menu』にします。
これが、MongoDB のコレクション名になります。
データを MongoDB に送りたい場合は、insertOneを使います。
一旦、thenとcatchはconsole.logで表示するようにします。
これで一通り完成しましたので、実際にデータを作成してみます。
『メニューを追加する』をクリックしたら、MongoDB を見てみます。
MongoDB の『Browse Collections』をクリックします。
menu を確認すると、
先程作成したデータが反映されていました。
お知らせ
私事ですが、Udemyで初心者を対象にしたReactの動画コースを作成しました。
Reactについて興味がありましたら、ぜひ下のリンクからアクセスしてください。
詳しくはこちら(Udemyの外部サイトへ遷移します)