Upload 4.23
This commit is contained in:
30
part4/bloglist/controllers/users.js
Normal file
30
part4/bloglist/controllers/users.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const bcrypt = require('bcrypt')
|
||||
const usersRouter = require('express').Router()
|
||||
const User = require('../models/user')
|
||||
|
||||
usersRouter.post('/', async (request, response) => {
|
||||
const { username, name, password } = request.body
|
||||
|
||||
if (!password || password.length < 3) {
|
||||
return response.status(400).json({ error: 'password must be at least 3 characters long' })
|
||||
}
|
||||
const saltRounds = 10
|
||||
const passwordHash = await bcrypt.hash(password, saltRounds)
|
||||
|
||||
const user = new User({
|
||||
username,
|
||||
name,
|
||||
passwordHash,
|
||||
})
|
||||
|
||||
const savedUser = await user.save()
|
||||
|
||||
response.status(201).json(savedUser)
|
||||
})
|
||||
|
||||
usersRouter.get('/', async (request, response) => {
|
||||
const users = await User.find({}).populate('blogs', { title: 1, author: 1, url: 1, likes: 1 })
|
||||
response.json(users)
|
||||
})
|
||||
|
||||
module.exports = usersRouter
|
||||
Reference in New Issue
Block a user