el problema es que no puedo realizar una solicitud a MongoDB después de validar la solicitud con el siguiente código:
module.exports.validateRegisterInput = ( username, email, password, confirmPassword ) => { const errors = {}; if (username.trim() === "") { errors.username = "Username must be provided"; } if (email.trim() === "") { errors.email = "Email must be provided"; } else { const validEmail = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/; if (!email.match(validEmail)) { errors.email = "Email must be valid"; } } if (password === "") { errors.password = "Password must be provided"; } if (password !== confirmPassword) { errors.password = "Passwords must match"; } return { errors, vaild: Object.keys(errors).length < 1, }; };los validadores funcionan bien y verifican la solicitud en busca de errores, pero una vez que no hay ningún problema con la solicitud, no me permite enviar una solicitud y genera un error de todos modos, también estoy usando los validadores de la siguiente manera:
module.exports = { Mutation: { async register( parent, { registerInput: { username, email, password, confirmPassword } } ) { const { valid, errors } = validateRegisterInput( username, email, password, confirmPassword ); if (!valid) { throw new UserInputError("Errors", { errors }); } ...Entonces, resolví el problema, el problema era que no estaba llamando a la pregunta directamente y la cambié a:
validateRegisterInput(username, email, password, confirmPassword);y agregar errores en los validadores y no en el índice
const { UserInputError } = require("apollo-server"); module.exports.validateRegisterInput = ( username, email, password, confirmPassword ) => { if (username.trim() === "") { throw new UserInputError("Username must be provided", { errors: { username: "Username must be provided", }, }); } if (email.trim() === "") { throw new UserInputError("Email must be provided", { errors: { email: "Email must be provided", }, }); } else { const validEmail = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/; if (!email.match(validEmail)) { throw new UserInputError("Email must be correct", { errors: { email: "Email must be correct", }, }); } } if (password === "") { throw new UserInputError("Password must be provided", { errors: { password: "Password must be provided", }, }); } if (password !== confirmPassword) { throw new UserInputError("Passwords must match", { errors: { password: "Password must match", }, }); } };