Я создаю форму входа с приложением реагировать, а также я создаю API.Для бэкэнда я хочу создать функцию, в которую может войти только администратор ролей, так как теперь каждый пользователь может войти в бэкэнд.У меня есть функция для входа, это моя функция API:
const login = async (req, res, next) => {
const { body } = req;
const { username, password } = body;
...
} else {
UserModel.find({
username: username
}, (err, users) => {
if (err) {
res.send({
success: false,
message: 'Error: Server error.'
})
} else if (users.length != 1) {
res.send({
success: false,
message: 'Error: User not exist!'
})
} else {
const user = users[0]
const roleId = user.role
const role = await checkUserRole(roleId)
console.log(role)
if (!user.validPassword(password)) {
res.send({
success: false,
message: 'Error: Password not match.'
})
} else {
res.send({
success: true,
message: 'Login success'
})
}
}
})
}
}
, и я хочу проверить, если роль пользователя является администратором, поэтому я создаю функцию до
const checkUserRole = async (roleId) => {
return RoleModel.findById(roleId).exec((err, role) => {
if (err) {
return message = 'Server error.'
} else if (role.roleName != 'admin') {
return message = 'You are not admin. Please use admin credential!'
}
})
}
, но результат, когдая console.log(role)
это undefined
.
Как получить результат от checkUserRole
?Или я что-то пропустил?