Как получить всю ошибку с функцией forEach в объекте напрямую? - PullRequest
0 голосов
/ 13 мая 2019

Можно ли получить значение массива из функции, если я помещу forEach в массив?

Вот мой код

res.status(400).send({
    reason: err._message,
    messages: Object.keys(err.errors).forEach((message) => {
        return message; // I want messages will be arrays from err.errors
    })
});

он не возвращает никакой ошибки, и я попытался добиться такого вывода

{
    "reason": "some message from err._message",
    "errors": {
        "name": "Name field is required",
        "etc": "etc field is required",

        ...
    }
}

err.errors вывод (я не хочу показывать все ошибки)

"errors": {
    "name": {
        "message": "Name field is required",
        "name": "ValidatorError",
        "properties": {
            "message": "Name field is required",
            "type": "required",
            "path": "name",
            "value": ""
        },
        "kind": "required",
        "path": "name",
        "value": ""
    }
},

EDIT

как комментарий @jonrsharpe Я пытался использовать map

res.status(400).send({
    reason: err._message,
    errors: Object.values(err.errors).map((data) => {
        return data.message;
    })
});

это уже дает мне правильное значение, но я не знаю, как получить ключ

этот код возвращает

{
    "reason": "User validation failed",
    "errors": [
        "Name field is required",
        "Email field is required"
    ]
}

Но если возможно, я хочу, чтобы ошибки возвращались как Object

1 Ответ

1 голос
/ 13 мая 2019

Пожалуйста .reduce функция из JavaScript.

Object.keys(err.errors).reduce((a,b)=>{ 
    a[b]=x.errors[b]['message']; 
    return a
}, {})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...