38 lines
789 B
JavaScript
38 lines
789 B
JavaScript
const mongoose = require('mongoose')
|
|
const uniqueValidator = require('mongoose-unique-validator')
|
|
|
|
const userSchema = new mongoose.Schema({
|
|
username: {
|
|
type: String,
|
|
required: true,
|
|
unique: true,
|
|
minLength: 3
|
|
},
|
|
name: String,
|
|
passwordHash: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
blogs: [
|
|
{
|
|
type: mongoose.Schema.Types.ObjectId,
|
|
ref: 'Blog'
|
|
}
|
|
],
|
|
})
|
|
|
|
userSchema.plugin(uniqueValidator)
|
|
|
|
userSchema.set('toJSON', {
|
|
transform: (document, returnedObject) => {
|
|
returnedObject.id = returnedObject._id.toString()
|
|
delete returnedObject._id
|
|
delete returnedObject.__v
|
|
// the passwordHash should not be revealed
|
|
delete returnedObject.passwordHash
|
|
}
|
|
})
|
|
|
|
const User = mongoose.model('User', userSchema)
|
|
|
|
module.exports = User |