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