Этот API вызывается, когда пользователь пытается зарегистрироваться и ввести данные. Я хочу посмотреть, могу ли я добавить условие, в котором говорится, что электронная почта уже существует.
Думаю, мне нужно что-то вроде:
const user = await User.find({ email })
if (user) {
res.status(400).json({ message: "User with this already exists" })
}
Но я создаю нового пользователя, поэтому где следует Я размещаю вышеупомянутый запрос. Меня как-то смущает порядок исполнения.
module.exports = {
registerUser: async(req, res, next) => {
try {
var {
username,
email,
password
} = req.body
if (password) {
const salt = bcrypt.genSaltSync(10)
password = bcrypt.hashSync(password, salt)
}
if (!username || !email || !password) {
return res
.status(400)
.json({
message: "Username, email and password are must"
})
}
if (!validator.isEmail(email)) {
return res.status(400).json({
message: "Invaid email"
})
}
if (password.length < 6) {
return res
.status(400)
.json({
message: "Password should be of at least 6 characters"
})
}
const user = await User.create({
username,
email,
password
})
if (!user) {
return res.status(404).json({
error: "No user found "
})
}
return res.status(200).json({
user
})
} catch (error) {
return next(error)
}
}