hp
4 years ago in JavaScript
const {Router} = require('express')
const bcrypt = require('bcrypt')
const User = require('../../models/User')
const {check, validationResult} = require('express-validator')
const router = Router()
router.post(
'/register',
[
check('username', 'Некорректное имя пользователя').isLength({min: 6}),
check('password', 'Минимальная длинна пароля 8 символов').isLength({min: 8})
],
async(req, res)=>{
try{
const errors = validationResult(req)
if(!errors.isEmpty()){
return res.status(400).json({
errors: errors.array(),
message: 'Введенные данные некорректны'
})
}
const {username, password, role} = req.body
const candidate = await User.findOne({username})
if(candidate){
return res.status(400).json({message: 'Пользователь с такими данными уже существует'})
}
const hashedPassword = await bcrypt.hash(password, 12)
const user = new User({username, password: hashedPassword, role})
await user.save()
res.status(201).json({message: 'Пользователь создан'})
}catch (e){
res.status(200).json({message:'Ошибка при регистрации'})
}
}
)
module.exports = router