マングース MongoDBとの対話を容易にするフレームワークです。実際、基本的に、検証、キャスト、ロジックの定型文をすべて自分でやりたいとは思わないので、なぜ車輪の再発明を行うのですか。
そして、初心者なので、フレームワークを恐れないでください。バックエンドとフロントエンドの多くの領域で、生活を楽にするための便利なフレームワークがたくさんあります。
あなたが共有した記事は自明ですが、データベースの部分のみを要約します あなたのために(私はあなたのコードに深く入り込むことはありません、ロバの仕事はありません。残りはあなた次第です):
1) まず、マングースをインストールします。
npm install mongoose
記事には--save
があります 「npm install
」のように、これを追加する必要はありません。 指定したパッケージをデフォルトで依存関係に保存します。"(
2) マングースにアクセスして使用できるようにする 、ノード方式でインポートする必要があります。つまり、require()
。
const express = require(‘express’)
const mongoose = require(“mongoose”);
const bodyParser = require(‘body-parser’);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
そして、 body-parser とは何ですか?
データベースをエクスプレスで処理する場合、遅かれ早かれこれ
。
そして、結局1つ必要な理由は、
また、最近のバージョンのExpressには独自のボディパーサーがあるため、app.use(express.json())
を使用できます。 app.use(bodyParser.json())
の代わりに 。
重要: body-parserはルートの前にある必要があります。
3) mongoose.connect(url)
を使用します 。
url
引数は、 MongoDB Atlasにあるものです。 。 :
場所:[クラスター]タブ->[接続]->[アプリケーションの接続]->[ドライバーnode.js]
これはあなたに次のようなものを与えます:
mongodb+srv://<user>:<password>@,cluster>.mongodb.net/test?retryWrites=true&w=majority
重要: 自分のユーザーとパスワードではなく、[データベースアクセス]タブで作成したユーザーのユーザーとパスワードを使用します。
機密性の高い変更可能なデータを保護するために、環境変数を設定できます。しかし、私はconfig.js
を使用することを好みます 簡単にするために、これは通常アプリのルートにあります。
それらを保護できるだけでなく(.gitignore
を使用する場合など) )だけでなく、ある環境から別の環境に変化する可能性のある変数があるため、アプリ全体で変化するものを探すのではなく、1つの場所で利用でき、簡単に見つけることができるため、簡単に変更できます。
.env
の場合 ファイルアプローチ、この記事
。
重要: コードをgithubまたはオンラインのどこかに配置したい場合は、config.js
を使用する理由の1つです。 、このファイルを.gitignore
に追加することを忘れないでください このような機密データが漏洩してオンラインで他の人に公開されるのを防ぐためです。
config.js
で あなたはそうすることができます:
exports.username = 'your user';
exports.pass = 'your pass';
exports.myCluster = 'your cluster's name';
次に、それらをインポートします:
const { username, pass, myCluster } = require('./config');
<-パスはあなたにとって異なるかもしれません!
ヒント: バックティックを使用できます(` `
)const url
の変数を簡単に挿入します 、補間 。
つまり:
const url = `mongodb+srv://${username}:${password},${myCluster}.mongodb.net/test?retryWrites=true&w=majority`
重要: 必ずホワイトリストを作成してください あなたのIP MongoDB側(アトラス)から、そうでない場合は接続エラーが発生します。セキュリティ :ネットワークアクセス ->IPホワイトリスト
0.0.0.0/0
を使用できます すべてのIPをホワイトリストに登録します。
また、 VPNを使用する場合 、IPも変更されます。
4)最後になりましたが重要です 、データベースに接続した後、スキーマを定義する必要があります :
const moviesSchema = new mongoose.Schema({
title: String,
year: Number,
rating: Number
});
そして
const Movies = mongoose.model(“Movies”, moviesSchema);
ヒント: 多くの初心者が犯すよくある間違いは、new
の使用を忘れたことです。 :
new mongoose.Schema({...})
別のファイルでモデルを作成する場合(これがベストプラクティスです)、const Movies
を変更する必要があります。 だから:
module.exports = mongoose.model(“Movies”, moviesSchema);
const mongoose = require('mongoose');
を追加することを忘れないでください その別のjsモデルファイルで。
そして、このモデルを使用したい場所では、次のようにインポートします。
const Movies= require('../models/movies');
(パスはアプリによって異なる場合があります)
残りは、私の友人、あなた次第です。データベースで何をしたいのか、そしてそれをどのように使うのか。
他の人への注意:私はこれを書いている間、これに多くの時間と心を注ぎました。何か間違っていることがわかった場合、または何かを追加できると思われる場合は、遠慮なく編集して私の答えを改善してください。