MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Erstellen, lesen, aktualisieren, löschen Sie Daten mit Node.js - Mongoose

In diesem Artikel haben wir einen Speicher und wir werden seine Sachen in der Datenbank für die Verwendung von CRUD speichern Prozess.
Wenn Sie die Quelle meines Codes benötigen, können Sie gerne auf meinem GitHub nachsehen Link hier

Zuerst sollten wir das Mungo-Paket in der Anwendung mit dem Terminal installieren, indem wir den folgenden Code verwenden:

npm install mongoose

Dann führen wir den Server über Express aus und erstellen die Datei unseres Modells und schreiben die Befehle wie folgt:

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);

Danach schreiben wir in der Datei des Controllers Schritt für Schritt den Code meines CRUD. Erwähnenswert ist die Verwendung von Template-Engine EJS finden wir Zugriff auf den Frontend-Bereich und tauschen die erforderlichen Daten zum Importieren und Auslesen der URL aus.
Am Anfang der Controller-Datei benötigen wir unser vordefiniertes Modell im Produkt Variable, um in allen Funktionen mit der Datenbank kommunizieren zu können. Es sollte beachtet werden, dass die Großschreibung in Variablen, die Modelle enthalten, unter Webentwicklern üblich ist, jedoch nicht obligatorisch ist.

Erstellen:

Zum Speichern der Daten in der Datenbank sollten wir zuerst die empfangenen Daten in der Variablen speichern. Als Nächstes definieren wir eine Variable namens productData und verwenden den new Befehl importieren wir unsere empfangenen Daten in unser Modell (Produkt). Danach verwenden wir Async/Await versprechen, einen Speicherbefehl zu schreiben, um unsere Daten zu speichern.

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);
  }
};

Wenn wir Daten im Modell speichern, sind die ersten Variablen unsere Feldnamen, die wir in den ersten Schritten in unserem Modell erstellen, und die zweiten Variablen sind unsere empfangenen Daten. Wenn beide Variablen den gleichen Namen haben, können wir den Variablennamen einfach schreiben einmal wie folgt:

const productData = new Product({
    title,
    price,
    description,
    imageUrl
  });

Lesen Sie:

Um unsere Daten aus der Datenbank zu holen, könnten wir den find verwenden Befehl für die Variable des Modells wie folgt:

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);
  }
};

Um ein spezialisiertes Feld aus unserer Datenbank auszulesen, könnten wir select() verwenden Befehl zum Abrufen unserer Daten. Wie im folgenden Beispiel haben wir nur den Namen und den Preis jedes Produkts gelesen:

Const products = await Product.find.select(‘title price’)

Aktualisierung:

Um zu aktualisieren, fügen wir zuerst unsere Daten wie beim Erstellen in die Variablen ein, dann suchen wir mit der erhaltenen ID, die angibt, welches Produkt wir aktualisieren möchten, in der Datenbank und führen den Aktualisierungsvorgang durch. Für diesen Schritt verwenden wir findByIdAndUpdate() Befehl, in dem wir zu Beginn meine erhaltene ID eingeben, als nächstes schreiben wir die gesamten zu aktualisierenden Daten.

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)
  }
};

Löschen:

In diesem Abschnitt geben wir zuerst meine erhaltene ID in die productId ein Variable, dann mit findByIdAnRemove() Befehl finden und entfernen wir das Produkt.

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)
  }  
};

In diesem Artikel haben wir versucht, die CRUD zu beschreiben Betrieb mit NodeJS und MongoDB ohne auf die Details einzugehen, wie etwa die Validierung von Eingabedaten.
Ich hoffe, dieser Artikel war hilfreich für Sie, und falls Sie Fragen haben, zögern Sie nicht und kontaktieren Sie mich.

Aufrichtig,
Sasan Dehghanian