Когда я создаю нового пользователя, я хочу получить доступ к имени и обновлению роли моего пользователя.
Если клиент перенаправляется с маршрутом «/ company / register», то по умолчанию имя роли пользователя будет «company», есликлиент перенаправляется с именем пользователя '/ user / register', это будет гость и т. д. Я новичок в MongoDB и NodeJS, возможно, моя точка зрения совершенно неверна. Я открыт для предложения
const UserSchema = new Schema({
email:{
type: String,
required: true,
default: ""
},
encrypted_password:{
type:String,
required:true,
default: ""
},
user_role:[
{
role_name:{
type:String
},
is_company:{
type:Boolean,
default:false
},
write:{
type:Boolean,
default:false
},
read:{
type:Boolean,
default:false
},
publish:{
type:Boolean,
default:false
}
}
],
company:[
{
company_name:{
type:String
},
address:{
type:String
}
}
],
});
Мой маршрут регистрации
router.post('/register', (req, res) => {
User.findOne({email: req.body.email})
.then(company => {
if (company) {
return res.status(400).json({
email: 'Email already exists'
});
}
else {
const newUser = new User({
// I want to access here
email: req.body.email,
encrypted_password: req.body.encrypted_password,
updated_at: Date.now()
});
bcrypt.genSalt(10, (err, salt) =>{bcrypt.hash(newUser.encrypted_password, salt, (err, hash) => {newUser.encrypted_password = hash;
// New user added
newUser
.save()
.then(user => res.json(user))
.catch(err => console.log(err));
})
})
}
});
});
Я уже пробовал это, конечно, это не работает
const newUser = new User({
email: req.body.email,
encrypted_password: req.body.encrypted_password,
user_role.role_name: "company",
updated_at: Date.now()
});