48 lines
923 B
JavaScript
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);
|