この記事では、ストアがあり、 CRUD を使用するために、そのストアをデータベースに保存します。 処理する。
私のコードのソースが必要な場合は、私の GitHubを自由に確認してください。 ここにリンク
最初に、次のコードを使用して、ターミナルを備えたアプリケーションにマングースパッケージをインストールする必要があります:
npm install mongoose
次に、Expressを介してサーバーを実行し、モデルのファイルを作成して、次のようにコマンドを記述します。
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const productSchema = new Schema({
title: {
type: String,
required: true
},
price: {
type: Number,
required: true
},
description: {
type: String,
required: true
},
imageUrl: {
type: String,
required: true
}
});
module.exports = mongoose.model('Product',productSchema);
その後、コントローラーのファイルに、CRUDのコードを段階的に記述します。 template-engine EJSを使用することで言及する価値があります フロントエンドセクションへのアクセスを見つけ、URLをインポートして読み取るために必要なデータを交換します。
コントローラファイルの先頭で、製品に事前定義されたモデルが必要です。 すべての機能でデータベースと通信できるようにする変数。モデルを含む変数の大文字化はWeb開発者の間で一般的ですが、必須ではないことに注意してください。
作成:
データベースにデータを保存するには、まず、受信したデータを変数に保存する必要があります。次に、productDataという名前の変数を定義し、 new
を使用します。 コマンド受信したデータをモデル(製品)にインポートします。その後、 Async/Await
を使用します データを保存するための保存コマンドを作成することを約束します。
exports.postAddProduct = async (req, res, next) => {
const title = req.body.title;
const imageUrl = req.body.imageUrl;
const price = req.body.price;
const description = req.body.description;
const productData = new Product({
title: title,
price: price,
description: description,
imageUrl: imageUrl
});
try {
const result = await productData.save();
res.redirect("/admin/products");
} catch (err){
console.log(err);
}
};
モデルにデータを保存する場合、最初の変数は最初のステップでモデルに作成したフィールド名であり、2番目の変数は両方の変数が同じ名前の場合に受信したデータであり、変数の名前を次のように記述できます。以下のように1回:
const productData = new Product({
title,
price,
description,
imageUrl
});
読む:
データベースからデータを取得するには、 find
を使用できます。 以下のようにモデルの変数に対するコマンド:
exports.getAdminProducts = async (req, res, next) => {
try {
const products = await Product.find()
res.render("admin/products", {
pageTitle: "Admin Products",
products: products,
path: "/admin/products",
});
} catch (err) {
console.log(err);
}
};
データベースから特殊なフィールドを読み取るには、 select()
を使用できます。 データをフェッチするコマンド。以下の例のように、各製品の名前と価格のみを読みました。
Const products = await Product.find.select(‘title price’)
更新:
更新するには、最初に作成と同様に、データを変数に入れ、次に、更新する製品を示す受信したIDを使用して、データベースを検索し、更新操作を実行します。このステップでは、 findByIdAndUpdate()
を使用します コマンド。最初に受信したIDを入力し、次に更新するデータ全体を書き込みます。
exports.postEditProduct = async (req, res, next) => {
const productId = req.body.productId;
const updatedTitle = req.body.title;
const updatedPrice = req.body.price;
const updatedImageUrl = req.body.imageUrl;
const updatedDesc = req.body.description;
try {
await Product.findByIdAndUpdate(productId, {
title: updatedTitle,
price: updatedPrice,
description: updatedDesc,
imageUrl: updatedImageUrl
});
res.redirect("/admin/products");
} catch (err) {
console.log(err)
}
};
削除:
このセクションでは、最初に受信したIDを productIdに入れます 変数、次に findByIdAnRemove()
製品を見つけて削除するコマンド。
exports.postDeleteProduct = async (req, res, next) => {
const productId = req.body.productId;
try {
await Product.findByIdAndRemove(productId);
res.redirect("/admin/products");
} catch (err) {
console.log(err)
}
};
この記事では、 CRUDについて説明しました。 NodeJSを使用した操作 およびMongoDB エントリデータの検証などの詳細には触れません。
この記事がお役に立てば幸いです。ご不明な点がございましたら、お気軽にご連絡ください。
心から、
Sasan Dehghanian