в настоящее время я пытаюсь создать нового пользователя в моей базе данных mongodb. Пользователь также должен отправить свою электронную почту.
Моя модель выглядит следующим образом:
const userSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
email: {
type: String,
required: true,
unique: true,
match: /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
}
Это просто важная часть, потому что там я утверждаю, что почта должна соответствовать этой указанной c кодировке.
Теперь моя проблема: если я обновлю электронное письмо методом PATCH
router.patch('/user', checkAuth, async (req, res, next) => {
try {
const id = req.body._id;
const update = req.body;
const options = { new: true };
const result = await User.findByIdAndUpdate(id, update, options);
if (!result) {
throw createError(404, 'User does not exist');
}
res.send(result);
} catch (error) {
console.log(error.message);
if (error instanceof mongoose.CastError) {
return next(createError(400, 'Invalid User Id'));
}
next(error);
}
})
Пользователь может ввести все, что он хочет, в поле электронной почты, не проверяя его на кодировку. У тебя есть идеи как это исправить?
Заранее спасибо, Том