MERN 스택으로 전자상거래 웹사이트 구축 - 파트 2(모델 설계)
따라서 첫 번째 부분을 완료한 후 Express App을 설정하는 프로세스에 대해 잘 알고 있으며 프로젝트에서 사용할 종속성과 이러한 종속성이 어떤 용도로 사용되는지 이해했습니다.
이제 두 번째 부분에서 애플리케이션을 위한 모델 구축을 시작할 것입니다. 우리는 MongoDB를 데이터베이스로 사용하여 모든 데이터를 저장합니다. 우리는 Mongoose를 사용하여 MongoDB 데이터베이스에 연결하고 데이터베이스 스키마를 구축한 다음 해당 스키마를 기반으로 모델을 구축하는 작업을 더 쉽게 만들 것입니다.
Notice: I will publish the complete detailed version of all the articles on the Medium website. Here I will give an overview and give the codes for the various pages part by part. It would be a 6-7 part series.
So, please click here to go to Medium and read the second part in completion. (These are friend links so do not worry about paywall)
일을 깨끗하고 단순하게 유지하기 위해 루트 폴더에 models라는 새 폴더를 만듭니다.
그런 다음 사용자, 항목, 장바구니 및 주문의 네 가지 모델을 나타내는 네 개의 파일을 그 안에 만듭니다.
Note: We do not need to give a unique id parameter to our schemas since MongoDB automatically provides a unique ID once we save any document in it.
그럼 이제 각 모델의 세부 사항을 하나씩 살펴보겠습니다. 사용자 모델부터 시작하겠습니다.
사용자 모델
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const { isEmail } = require('validator');
const UserSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: [true,'Please enter an email'],
unique: true,
lowercase: true,
validate: [isEmail, 'Please enter a valid email']
},
password: {
type: String,
required: [true, 'Please enter a valid password'],
minlength: [6, 'Minimum password length must be 6 characters']
},
register_date: {
type: Date,
default: Date.now
}
})
module.exports = User = mongoose.model('user',UserSchema);
항목 모델
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ItemSchema = new Schema({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
},
category:{
type: String,
required: true
},
price: {
type: Number,
required: true
},
date_added: {
type: Date,
default: Date.now
},
});
module.exports = Item = mongoose.model('item',ItemSchema);
카트 모델
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const CartSchema = new Schema({
userId: {
type: String,
},
items: [{
productId: {
type: String,
},
name: String,
quantity: {
type: Number,
required: true,
min: [1, 'Quantity can not be less then 1.'],
default: 1
},
price: Number
}],
bill: {
type: Number,
required: true,
default: 0
}
});
module.exports = Cart = mongoose.model('cart',CartSchema);
주문 모델
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const OrderSchema = new Schema({
userId: {
type: String,
},
items: [{
productId: {
type: String,
},
name: String,
quantity: {
type: Number,
required: true,
min: [1, 'Quantity can not be less then 1.']
},
price: Number
}],
bill: {
type: Number,
required: true
},
date_added: {
type: Date,
default: Date.now
}
})
module.exports = Order = mongoose.model('order',OrderSchema);
이것이 우리 애플리케이션의 모델에 관한 모든 것이었습니다. 응용 프로그램에서 사용할 모든 모델 구축을 마쳤으므로 이제 두 번째 부분을 마치겠습니다.
전체 자습서를 읽으려면 move to Medium and read the complete article 을 참조하십시오.
이제 다음 부분에서는 경로와 컨트롤러를 다룰 것입니다. 또한 다음 파트에서 만들 몇 가지 사용자 정의 미들웨어 기능을 다룰 것입니다.
튜토리얼의 이 부분이 마음에 드셨기를 바랍니다. 오늘 새롭고 흥미로운 것을 배웠기를 바랍니다.
Reference
이 문제에 관하여(MERN 스택으로 전자상거래 웹사이트 구축 - 파트 2(모델 설계)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shubham1710/build-an-e-commerce-website-with-mern-stack-part-2-designing-the-models-38o8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)