Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何直接获取对象中forEach函数的所有错误?_Node.js_Express - Fatal编程技术网

Node.js 如何直接获取对象中forEach函数的所有错误?

Node.js 如何直接获取对象中forEach函数的所有错误?,node.js,express,Node.js,Express,如果将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 }) }); 它不会返回任何错误,我尝试实

如果将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",

        ...
    }
}
errr.errors
输出(我不想显示所有错误)

编辑

作为
@jornsharpe
注释,我尝试使用
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"
    ]
}

但是如果可能的话,我希望错误返回为
对象
.reduce
函数

Object.keys(err.errors).reduce((a,b)=>{ 
    a[b]=x.errors[b]['message']; 
    return a
}, {})

forEach不返回任何东西,它只用于副作用;您需要map(获取数组)或reduce(可用于获取对象)hi@jonrsharpe,谢谢您的编辑!但是对于我的问题,我是否需要创建一个额外的
let
,或者我可以直接将它返回到
。发送({…})
?您可以让一个对象使用forEach填充它,或者使用map或reduce内联完成它,您只是不能使用forEach内联完成它。您好,我刚刚更新了我的问题,请检查@乔尔沙普。或者我无法执行内联对象.map?您需要使用
.map()
而不是
.forEach()
Object.keys(err.errors).reduce((a,b)=>{ 
    a[b]=x.errors[b]['message']; 
    return a
}, {})