MERN Part-3.1을 사용하는 ECOMMERCE 웹 사이트(제품 모델)

제품 API - productModel



이 블로그에서는 ProductApi의 productModel을 만들 것입니다.

1 단계 backend 디렉토리 내부에 이러한 폴더를 만들 수 있습니다.
  • models 여기서는 API용 모델을 만들 것입니다
  • .
  • routes 여기에서 API에 대한 경로를 만들 것입니다
  • .
  • controllers 여기서는 API용 컨트롤러를 만들 것입니다
  • .

    2단계 이제 productModel.js 디렉토리 안에 models라는 파일을 만듭니다.

    여기서 우리는 제품에 대한 Schema을 만들 것입니다.

    3단계 이제 productModel.js 파일에서 다음 코드를 작성할 것입니다.

    const mongoose = require("mongoose");
    
    const productSchema = mongoose.Schema({
      name: {
        type: String,
        required: [true, "Please Enter Product Name"],
        trim: true,
      },
      description: {
        type: String,
        required: [true, "Please Enter Product Description"],
      },
      price: {
        type: Number,
        required: [true, "Please Enter Product Price"],
        maxLength: [8, "Price cannot exceed 8 characters"],
      },
      images: [
        {
          public_id: {
            type: String,
            required: true,
          },
          url: {
            type: String,
            required: true,
          },
        },
      ],
     rating: {
        type: Number,
        default: 0,
      },
      category: {
        type: String,
        required: [true, "Please Enter Product Category"],
      },
      stock: {
        type: Number,
        required: [true, "Please Enter product Stock"],
        maxLength: [4, "Stock cannot exceed 4 characters"],
        default: 1,
      },
      numOfReviews: {
        type: Number,
        default: 0,
      },
      reviews: [
        {
          name: {
            type: String,
            required: true,
          },
          rating: {
            type: Number,
            required: true,
          },
          comment: {
            type: String,
            required: true,
          },
        },
      ],
      createdAt: {
        type: Date,
        default: Date.now,
      },
    });
    
    module.exports = mongoose.model("Product", productSchema);
    


    여기서 처음에는 mongoose 패키지를 가져온 다음 mongoose.Schema()를 작성하여 몽구스 스키마를 생성했습니다.

    스키마에 포함하려는 속성을 가진 개체를 사용합니다. 그럼 이 속성들이 무엇을 하는지 봅시다.

    처음에는 name를 유형으로 사용하는 descriptionStrings가 있고 두 값을 모두 입력해야 하며 requiredtrue로 설정합니다. 또한 trim를 true로 설정하여 불필요한 공백을 제거합니다.

    price 에 대해서도 동일하며 typeNumber 로 변경하고 maxLength8 digits 로 설정했습니다.


    그런 다음 제품 이미지에 대한 속성을 만들었습니다. 이 속성은 나중에 매핑할 수 있도록 Array of Objects가 됩니다. Cloudinary에 이미지를 저장한 다음 public_id 서버에 이미지 링크를 저장할 것이므로 속성으로 urlMongoDb를 제공했습니다.


    그런 다음 기본적으로 rating가 되는 0, stock이기도 하고 최대 Number 자릿수를 가질 수 있는 4와 같은 속성을 만들었습니다. 재고가 입력되지 않으면 설정됩니다. 기본적으로 1입니다.

    category는 이름 속성과 동일하고 numOfReviews는 등급과 동일합니다.


    단일 제품에 대한 여러 리뷰가 있을 수 있으므로 reviews 속성은 Array of Objects이기도 합니다. 그러나 여기서는 name , rating & comment 3개의 속성을 지정하고 모두 requiredtrue로 지정합니다. rating

    마지막으로 이 제품이 언제 만들어졌는지 알 수 있도록 comment라는 속성을 만들었습니다. createdAttype로 설정되며 기본적으로 제품이 생성될 현재 날짜 및 시간이 됩니다.


    마지막으로 몽구스 모델을 Date로 내보냅니다.


    그래서 다음 단계는

    좋은 웹페이지 즐겨찾기