Загрузить файлы в «sk1/src/models»
This commit is contained in:
parent
568a2779eb
commit
26b3bf1ad7
17
sk1/src/models/Cart.js
Normal file
17
sk1/src/models/Cart.js
Normal file
@ -0,0 +1,17 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const CartItemSchema = new mongoose.Schema({
|
||||
productId: { type: String, required: true },
|
||||
name: { type: String, required: true },
|
||||
price: { type: Number, required: true },
|
||||
img: { type: String, required: true },
|
||||
quantity: { type: Number, default: 1 }
|
||||
});
|
||||
|
||||
const CartSchema = new mongoose.Schema({
|
||||
userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
|
||||
items: [CartItemSchema],
|
||||
updatedAt: { type: Date, default: Date.now }
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('Cart', CartSchema);
|
19
sk1/src/models/User.js
Normal file
19
sk1/src/models/User.js
Normal file
@ -0,0 +1,19 @@
|
||||
const mongoose = require('mongoose');
|
||||
const bcrypt = require('bcryptjs');
|
||||
|
||||
const UserSchema = new mongoose.Schema({
|
||||
firstName: { type: String, required: true },
|
||||
lastName: { type: String, required: true },
|
||||
email: { type: String, required: true, unique: true },
|
||||
password: { type: String, required: true },
|
||||
createdAt: { type: Date, default: Date.now }
|
||||
});
|
||||
|
||||
UserSchema.pre('save', async function(next) {
|
||||
if (this.isModified('password')) {
|
||||
this.password = await bcrypt.hash(this.password, 10);
|
||||
}
|
||||
next();
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('User', UserSchema);
|
Loading…
Reference in New Issue
Block a user