MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Créer, lire, mettre à jour, supprimer des données en utilisant Node.js - Mongoose

Dans cet article, nous avons un magasin et nous allons enregistrer ses éléments dans la base de données pour l'utilisation du CRUD processus.
si vous avez besoin de la source de mon code, n'hésitez pas à consulter mon GitHub lien ici

Dans un premier temps, il faut installer le package mongoose dans l'application avec le terminal en utilisant le code suivant :

npm install mongoose

Ensuite, nous exécutons le serveur via express et créons le fichier de notre modèle et écrivons les commandes comme ci-dessous :

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

Après cela, dans le fichier du contrôleur, nous écrivons étape par étape le code de mon CRUD. Il convient de mentionner qu'en utilisant template-engine EJS nous trouvons l'accès à la section frontale et échangeons les données requises pour l'importation et la lecture via l'URL.
Au début du fichier de contrôleur, nous avons besoin de notre modèle prédéfini dans le Produit variable pour pouvoir communiquer avec la base de données dans toutes les fonctions. Il convient de noter que la capitalisation dans les variables contenant des modèles est courante chez les développeurs Web, mais elle n'est pas obligatoire.

Créer :

pour l'enregistrement des données dans la base de données, nous devons d'abord enregistrer les données reçues dans la variable. Ensuite, nous définissons une variable nommée productData, et en utilisant le new commande nous importons nos données reçues dans notre modèle (Produit). Après cela, nous utilisons Async/Await promettons d'écrire une commande de sauvegarde pour stocker nos données.

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

Lorsque nous enregistrons des données dans le modèle, les premières variables sont nos noms de champ que nous créons dans notre modèle dans les premières étapes, et les secondes variables sont nos données reçues si les deux variables ont le même nom, nous pouvons écrire le nom de la variable juste une fois comme ci-dessous :

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

Lire :

Pour récupérer nos données à partir de la base de données, nous pourrions utiliser le find commande sur la variable du modèle comme ci-dessous :

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

Pour lire un champ spécialisé de notre base de données, nous pourrions utiliser le select() commande pour récupérer nos données. Comme dans l'exemple ci-dessous, nous n'avons lu que le nom et le prix de chaque produit :

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

Mise à jour :

Pour mettre à jour, d'abord, comme pour créer, nous mettons nos données dans les variables, puis en utilisant l'ID que nous avons reçu, qui indique quel produit nous voulons mettre à jour, nous recherchons dans la base de données et effectuons l'opération de mise à jour. Pour cette étape, nous utilisons le findByIdAndUpdate() commande, dans laquelle au début nous saisissons mon ID reçu, puis nous écrivons toutes les données à mettre à jour.

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

Supprimer :

Dans cette section, nous mettons d'abord mon identifiant reçu dans le productId variable, puis avec le findByIdAnRemove() commande nous trouvons et supprimons le produit.

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

Dans cet article, nous avons essayé de décrire le CRUD opération avec NodeJS et MongoDB sans entrer dans les détails, comme la validation des données d'entrée.
J'espère que cet article vous a été utile, et si vous avez des questions, n'hésitez pas et contactez-moi.

Sincèrement,
Sasan Dehghanian