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
를 유형으로 사용하는 description
및 Strings
가 있고 두 값을 모두 입력해야 하며 required
를 true
로 설정합니다. 또한 trim
를 true로 설정하여 불필요한 공백을 제거합니다.price
에 대해서도 동일하며 type
를 Number
로 변경하고 maxLength
를 8 digits
로 설정했습니다.그런 다음 제품 이미지에 대한 속성을 만들었습니다. 이 속성은 나중에 매핑할 수 있도록
Array of Objects
가 됩니다. Cloudinary에 이미지를 저장한 다음 public_id
서버에 이미지 링크를 저장할 것이므로 속성으로 url
및 MongoDb
를 제공했습니다.그런 다음 기본적으로
rating
가 되는 0
, stock
이기도 하고 최대 Number
자릿수를 가질 수 있는 4
와 같은 속성을 만들었습니다. 재고가 입력되지 않으면 설정됩니다. 기본적으로 1
입니다.category
는 이름 속성과 동일하고 numOfReviews
는 등급과 동일합니다.단일 제품에 대한 여러 리뷰가 있을 수 있으므로
reviews
속성은 Array of Objects
이기도 합니다. 그러나 여기서는 name
, rating
& comment
3개의 속성을 지정하고 모두 required
를 true
로 지정합니다. rating
마지막으로 이 제품이 언제 만들어졌는지 알 수 있도록
comment
라는 속성을 만들었습니다. createdAt
는 type
로 설정되며 기본적으로 제품이 생성될 현재 날짜 및 시간이 됩니다.마지막으로 몽구스 모델을
Date
로 내보냅니다.그래서 다음 단계는
Reference
이 문제에 관하여(MERN Part-3.1을 사용하는 ECOMMERCE 웹 사이트(제품 모델)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bikramjeetsarmah/ecommerce-website-using-mern-part-31-product-model--3n0i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)