MONGOOSE を使用して MongoDB を NODE.JS に接続するにはどうすればよいでしょうか?

0 株式
0
0
0
0

導入

MongoDBは最も人気のあるNoSQLデータベースです。MongoDBはデータをコレクションに格納します。コレクション内の個々のレコードはドキュメントと呼ばれ、JSONデータに似たキーと値の構造を持ちます。MongoDBは、そのパフォーマンス、柔軟性、そしてスケーラビリティの点で高く評価されています。.

マングースとは何ですか?

Mongooseは、Node.jsフレームワーク向けのPromiseベースのオブジェクトデータモデリング(ODM)ライブラリです。Mongooseは、MongoDBデータベースとのやり取りを簡素化します。Mongooseを使えば、MongoDBスキーマの作成とモデリングが可能です。これにより、複雑なデータベースクエリやスキーマを記述する必要がなくなります。Mongooseを使えば、MongoDBに保存したいデータをモデリングできます。.
このガイドは、Mongoose を使用して MongoDB を Node.js に接続する方法を理解するのに役立ちます。.

前提条件:

このガイドを実行するには、コンピューターにNode.jsがインストールされている必要があります。MongoDBがコンピューターにインストールされているか、MongoDB Atlasクラウドアカウントにセットアップされている必要があります。Node.jsサーバー作成の基本知識が必要です。Postmanがインストールされている必要があります。Node.js Mongooseプロジェクトのセットアップ Node.jsプロジェクトを作成するには、任意のフォルダーに移動し、npm init -yを実行します。次に、以下のパッケージをインストールします。Express - Node.js HTTPサーバーを作成します。Mongoose - Node.jsでMongoDBのODMを作成します。.

npm install mongoose --save

Node.js で Mongoose および MongoDB と通信する Mongoose を使用して Mongoose と通信するには、db.js というファイルを作成し、次のように Mongoose 接続を構成します。

Mongoose ライブラリをインポートします。

const connectDB = async () => {
try {
const conn = await mongoose.connect(`mongodb://localhost:27017/test`, {
useNewUrlParser: true,
});
console.log(`MongoDB Connected: {conn.connection.host}`);
} catch (error) {
console.error(error.message);
process.exit(1);
}
}

ここで使用するMongoDBはローカルで実行されています。そのため、Mongooseはデータベース名への接続を作成します。ローカルのMongoDBインストールまたはMongoDB Atlasクラウド(mongodb://localhost:27017test)への正しいURIを入力してください。.

最後に、connectDB 関数をエクスポートします。

module.exports = connectDB;

db.js ファイルを指定してインポートします。

const express = require('express');
const connectDB = require('./db'); 

Express ミドルウェアとパーサーを追加します。

// express
const app = express();
//body parser
app.use(express.json());

connectDB() 関数を実行します。

//connect to database
connectDB();

サーバールートを追加します:

// routes
// We will add these routes later in this guide.

ローカルホスト ポートでプログラムを実行します。

onst PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server running on port {PORT}`));

Mongooseを使用してスキーマをモデル化する

モデルはMongoDBデータベースのコレクションスキーマを定義します。model.jsファイルとMongooseコレクションスキーマを以下のように作成します。

const {
Schema,
model
} = require("mongoose");
const MySchema = new Schema({
name: {
type: String,
required: true,
maxlength: 50
},
createdAt: {
type: Date,
default: Date.now,
},
});
const TaskModel = model("test", MySchema)
module.exports = TaskModel

ここでは、mongoose.Schemaメソッドを実行する関数MySchemaを作成します。このメソッドは、MongooseがMongoDB上で実行するスキーマを設定します。スキーマを作成するには、ドキュメントにファイルを追加します。今回は、以下の2つのフィールドを追加します。
名前 – 上記のコードでは、このフィールドは最大50文字の文字列として作成されます。Required は true に設定されており、すべてのドキュメントにこのフィールドが必須であることを示します。
createAt フィールドは、ドキュメントが作成された時刻を指定します。デフォルトでは、作成日のタイプとして現在の日付が使用されます。.

Mongoose スキーマを使用してデータベースにデータを追加します。

データベースにデータを追加するには、controller.js ファイルを作成します。.
モデル ファイルから MySchema をインポートします。const Task = require('./model');
タスクセットにタスクを追加します。これにより、POSTパスが指定されます。.

exports.createTask = async (req, res) => {
try {
// get the task from the body
const taskData = await req.body;
//create a new task then save
await Task.create(taskData)
.then((createdTask) => {
if (!createdTask) return res.status(404)
.json({
success: false,
message: "Task creation failed",
error: "Unable get created task"
})
res.status(201)
.json({
success: true,
createdTask
})
})
.catch((error) => {
res.status(404)
.json({
success: false,
error: error.message
})
})
} catch (error) {
res.status(500)
.json({
success: false,
message: "Internal server error"
})
}
}

すべてのタスクを回復:

このコードをcontroller.jsファイルに追加してください。これによりGETルートが指定されます。.

exports.createTask = async (req, res) => {
try {
// get the task from the body
const taskData = await req.body;
//create a new task then save
await Task.create(taskData)
.then((createdTask) => {
if (!createdTask) return res.status(404)
.json({
success: false,
message: "Task creation failed",
error: "Unable get created task"
})
res.status(201)
.json({
success: true,
createdTask
})
})
.catch((error) => {
res.status(404)
.json({
success: false,
error: error.message
})
})
} catch (error) {
res.status(500)
.json({
success: false,
message: "Internal server error"
})
}
}
exports.getTasks = async (req, res) => {
//get all the data in the model and return it as response
try {
Task.find()
.then((allTasks) => {
res.status(200)
.json({
success: true,
allTasks
})
})
.catch((error) => {
res.status(404)
.json({
success: false,
message: "Cant fined ",
error
})
})
} catch (error) {
res.status(500)
.json({
success: false,
message: "Internal server error",
error: error.message
})
}
}

ルートを作成:

上記のコントローラーを実行するためのルートを作成します。routes.jsという新しいファイルを作成し、以下のコードを追加します。

const router = require("express")
.Router()
const controller = require('./controller')
router
.post('/', controller.createTask)
.get('/', controller.getTasks)
module.exports = router

最後に、server.js ファイル内でこれらのルートを実行します。.

const router = require('./routes')
app.use('/tasks', router)

新しいタスクを追加するには、次のように Postman を使用して POST リクエストを送信します。

追加されたタスクを取得するには、次のように Postman を使用して GET リクエストを送信します。

MongoDB データベースにアクセスすると、追加されたタスクを確認できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あなたも気に入るかもしれない