MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Buat, Baca, Perbarui, Hapus data dengan menggunakan Node.js - Mongoose

Dalam artikel ini, kami memiliki toko dan kami akan menyimpan barang-barangnya di database untuk penggunaan CRUD proses.
jika Anda memerlukan sumber kode saya, silakan periksa GitHub my saya linknya disini

Pertama-tama, kita harus menginstal paket luwak di aplikasi dengan terminal dengan menggunakan kode berikut:

npm install mongoose

Kemudian, kami menjalankan server melalui express dan membuat file model kami dan menulis perintah seperti di bawah ini:

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

Setelah itu, di file controller, kami menulis kode CRUD saya tahap demi tahap. Perlu disebutkan bahwa dengan menggunakan template-engine EJS kami menemukan akses ke bagian front-end dan bertukar data yang diperlukan untuk mengimpor dan membaca URL.
Di awal file pengontrol, kami memerlukan model yang telah ditentukan sebelumnya di Produk variabel untuk dapat berkomunikasi dengan database di semua fungsi. Perlu dicatat bahwa kapitalisasi dalam variabel yang berisi model adalah umum di kalangan pengembang web, namun tidak wajib.

Buat:

untuk menyimpan data dalam database, pertama, kita harus menyimpan data yang diterima dalam variabel. Selanjutnya, kita mendefinisikan variabel bernama productData, dan dengan menggunakan new perintah kami mengimpor data yang kami terima ke dalam model kami (Produk). Setelah itu, kami menggunakan Async/Await berjanji untuk menulis perintah penyimpanan untuk menyimpan data kita.

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

Saat kita menyimpan data dalam model, variabel pertama adalah nama bidang kita yang kita buat dalam model kita pada langkah pertama, dan variabel kedua adalah data yang kita terima jika kedua variabel memiliki nama yang sama, kita dapat menulis nama variabel saja satu kali seperti di bawah ini:

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

Baca:

Untuk mengambil data kami dari database, kami dapat menggunakan find perintah pada variabel model seperti di bawah ini:

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

Untuk membaca bidang khusus dari database kami, kami dapat menggunakan select() perintah untuk mengambil data kita. Seperti pada contoh di bawah ini, kami hanya membaca nama dan harga setiap produk:

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

Pembaruan:

Untuk memperbarui, pertama, seperti membuat, kami memasukkan data kami ke dalam variabel, kemudian menggunakan ID yang kami terima, yang menunjukkan produk mana yang ingin kami perbarui, kami mencari di database dan melakukan operasi pembaruan. Untuk langkah ini, kami menggunakan findByIdAndUpdate() perintah, di mana pada awalnya kami memasukkan ID yang saya terima selanjutnya kami menulis seluruh data untuk diperbarui.

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

Hapus:

Di bagian ini, pertama-tama kami memasukkan ID yang saya terima di productId variabel, lalu dengan findByIdAnRemove() perintah kami menemukan dan menghapus produk.

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

Dalam artikel ini, kami mencoba mendeskripsikan CRUD operasi dengan NodeJS dan MongoDB tanpa masuk ke detail, seperti validasi entri data.
Saya harap artikel ini bermanfaat bagi Anda, dan jika Anda memiliki pertanyaan, jangan ragu dan hubungi saya.

Sungguh-sungguh,
Sasan Dehghanian


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Periksa apakah upser MongoDB melakukan penyisipan atau pembaruan

  2. mongod --bind_ip menggunakan docker-compose versi 2

  3. Cara Menjatuhkan Database di MongoDB dari Command Line

  4. Buat Indeks Teks Multi-Bahasa di MongoDB

  5. error:parameter tipe `D` harus digunakan sebagai parameter tipe untuk beberapa tipe lokal