Всем привет.
При регистрации делаю валидацию полей, и хочу вывести ошибку, которая будет содержать список информеров для каждого не заполненного поля:
Валидацияimport validator from "validator";
export default (name: string, email: string, password: string) => {
const errors: any = {};
if (!name || name.trim() === "") {
errors.name = "Укажите пожалуйста имя";
}
if (!email || email.trim() === "") {
errors.email = "Укажите пожалуйста email";
} else {
if (!validator.isEmail(email.trim())) {
errors.email = "Укажите пожалуйста корректный email";
}
}
if (!password || password === "") {
errors.password = "Укажите пожалуйста пароль";
}
return {
errors,
valid: Object.keys(errors).length < 1
}
};
Вызов валидатораimport {UserInputError} from "apollo-server-express";
const {valid, errors} = registrationInputValidator(name, email, password);
if (!valid) {
throw new UserInputError("Ошибка", {errors});
}
При выполнении мутации получаю ответ{
"errors": [
{
"message": "Ошибка",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"registration"
],
"extensions": {
"code": "BAD_USER_INPUT"
}
}
],
"data": {
"registration": null
}
}
Почему в ответе не отображается properties ?
Хотя
console.log(new UserInputError("Ошибка", {errors}));
в консоли отображает:
UserInputError: Ошибка
{
errors: {
name: 'Укажите пожалуйста имя',
email: 'Укажите пожалуйста email',
password: 'Укажите пожалуйста пароль'
},
extensions: {code: 'BAD_USER_INPUT'}
}
Или как можно по другому вывести объект с полями и какие в них ошибки ?
заранее спасибо.