Node.js를 사용하여 데이터 생성, 읽기, 업데이트, 삭제 - Mongoose

이 기사에서는 상점이 있으며 CRUD 프로세스를 사용하기 위해 데이터베이스에 물건을 저장할 것입니다.
내 코드의 소스가 필요한 경우 내 GitHub 링크here를 확인하십시오.

먼저 다음 코드를 사용하여 터미널이 있는 응용 프로그램에 mongoose 패키지를 설치해야 합니다.
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의 코드를 단계별로 작성합니다. 템플릿 엔진 EJS를 사용하여 프런트 엔드 섹션에 대한 액세스를 찾고 URL을 통해 가져오기 및 읽기에 필요한 데이터를 교환한다는 점을 언급할 가치가 있습니다.
컨트롤러 파일의 시작 부분에서 모든 기능에서 데이터베이스와 통신할 수 있도록 제품 변수에 사전 정의된 모델이 필요합니다. 모델을 포함하는 변수의 대문자 사용은 웹 개발자 사이에서 일반적이지만 의무 사항은 아닙니다.

만들다:



데이터를 데이터베이스에 저장하기 위해서는 먼저 받은 데이터를 변수에 저장해야 합니다. 다음으로, 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);
  }
};


모델에 데이터를 저장할 때 첫 번째 변수는 첫 번째 단계에서 모델에서 생성한 필드 이름이고 두 번째 변수는 두 변수의 이름이 같은 경우 수신된 데이터입니다. 아래와 같이 한 번:

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


이 기사에서는 항목 데이터의 유효성 검사와 같은 세부 사항에 들어가지 않고 NodeJS 및 MongoDB를 사용한 CRUD 작업을 설명하려고 했습니다.
이 글이 도움이 되셨기를 바라며, 궁금한 점이 있으시면 주저하지 마시고 연락주시기 바랍니다.

진정으로,
사산 데가니안

좋은 웹페이지 즐겨찾기