Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 4x 4x 4x 9x 9x 9x 4x 4x 4x 9x | import mongoose from 'mongoose'
import bcrypt from 'mongoose-bcrypt'
interface UserAttributes {
email: string;
password: string;
createdAt?: Date;
updatedAt?: Date;
}
export interface UserDoc extends mongoose.Document {
email: string;
password: string;
verifyPassword(password: string): boolean;
}
const userSchema = new mongoose.Schema({
email: {
type: String,
required: true
},
password: {
type: String,
required: true
}
}, {
toJSON: {
versionKey: false,
transform (doc, ret) {
ret.id = ret._id
delete ret._id
delete ret.password
}
}
})
userSchema.plugin(bcrypt)
export const UserModel = mongoose.model('User', userSchema)
export default class User extends UserModel {
constructor(attributes: UserAttributes) {
super(attributes)
}
}
|