Upload 4.23
This commit is contained in:
@@ -16,6 +16,10 @@ const blogSchema = new mongoose.Schema({
|
||||
likes: {
|
||||
type: Number,
|
||||
required: true
|
||||
},
|
||||
user: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: 'User'
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
38
part4/bloglist/models/user.js
Normal file
38
part4/bloglist/models/user.js
Normal file
@@ -0,0 +1,38 @@
|
||||
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
|
||||
Reference in New Issue
Block a user