fake_shop/models/User.js

48 lines
923 B
JavaScript

const mongoose = require("mongoose");
const userSchema = new mongoose.Schema(
{
username: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
},
userId: {
type: Number,
unique: true,
required: true,
},
points: {
type: Number,
default: 0,
},
},
{
timestamps: true,
}
);
// 生成6位数的用户ID
async function generateUniqueUserId() {
while (true) {
const userId = Math.floor(100000 + Math.random() * 900000); // 生成6位数
const existingUser = await mongoose.models.User.findOne({ userId });
if (!existingUser) {
return userId;
}
}
}
userSchema.pre("save", async function (next) {
if (!this.userId) {
this.userId = await generateUniqueUserId();
}
next();
});
export default mongoose.models.User || mongoose.model("User", userSchema);