當用戶輸入已在使用的電子郵件時,我試圖犯一個自定義錯誤。
這是我的暫存器突變:
register: async (
_,
{ registerInput: { username, email, password, confirmedPassword } }
) => {
const { valid, errors } = registerInputValidator(
username,
email,
password,
confirmedPassword
);
if (!valid) {
throw new UserInputError('Errors', { errors });
}
const existUser = await User.findOne({ username });
if (existUser) {
throw new UserInputError('User is already exist', {
errors: {
username: 'This user is already exist',
},
});
}
const newUser = new User({
username,
email,
password,
});
const res = await newUser.save();
return {
...res._doc,
id: res._id,
token,
};
},
這是 mongo 默認錯誤:E11000 重復鍵錯誤集合:test.users 索引:email_1 重復鍵:{ 電子郵件:
我嘗試訪問此錯誤但沒有成功,如果我知道如何訪問此錯誤會很容易,所以我需要一些提示:) ty
uj5u.com熱心網友回復:
檢查是否有用戶使用該電子郵件,如果為真,則拋出錯誤,就像您使用用戶名所做的那樣。
const doesEmailExist = await User.findOne({ email });
if (doesEmailExist) {
throw new Error("Email already exists");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491360.html
